Reservas›Confirmar un movimiento de trabajo en el tablero de agenda
Confirmar un movimiento de trabajo en el tablero de agenda
Aplica el movimiento previsualizado por /move/preview: coloca el trabajo en el técnico a la nueva hora y empuja hacia atrás los trabajos desplazados, de forma atómica (bloqueo consultivo por técnico; el servidor recalcula el plan y protege cada trabajo por su status_version — una divergencia desde la vista previa devuelve 409 SCHEDULE_MOVE_PLAN_DRIFTED, vuelva a hacer preview). Mismo cuerpo que preview + `expected_version` opcional. Véase SCHEDULE_BOARD_DESIGN.md. 409 PRÓXIMOS PASOS: SCHEDULE_MOVE_PLAN_DRIFTED — la agenda cambió desde su vista previa (o expected_move_ids ya no coincide): vuelva a hacer preview, muestre el plan actualizado y haga commit de nuevo. Todos los demás códigos — mismos remedios que /move/preview.
Argumentos
idstringpathobligatorio
ID de la solicitud de trabajo (UUID o short_code)
Idempotency-Keystringheaderopcional
Unique key making retries safe: a repeat send with the same key replays the original response (header Idempotent-Replayed: true) instead of re-running the operation. Reusing a key with a different body returns 422 IDEMPOTENCY_KEY_REUSE.
expected_member_idsarray<string>bodyopcional
ExpectedMemberIDs — solo movimientos de cuadrilla: el conjunto COMPLETO de miembros que la vista previa
dotó (reenvíe data.members[].technician_id). Si el re-plan del commit
dotara un conjunto DISTINTO (un reemplazo previsualizado se reservó mientras
tanto), el commit se rechaza con SCHEDULE_MOVE_PLAN_DRIFTED —
los cambios de cuadrilla nunca se aprueban sin verse. Omítalo para desactivarlo.
expected_move_idsarray<string>bodyopcional
ExpectedMoveIDs — los IDs de los trabajos desplazados que devolvió la vista previa (reenvíe
data.days[].moves[].job_id). Opcional pero RECOMENDADO: si la agenda
cambió de modo que el commit empujaría un conjunto distinto (p. ej. un trabajo reservado en
el técnico objetivo desde la vista previa), el commit se rechaza con
SCHEDULE_MOVE_PLAN_DRIFTED en lugar de empujar en silencio un trabajo no visto.
expected_versionintegerbodyopcional
ExpectedVersion — el status_version del trabajo movido según la vista previa
(0 = cerco sobre el valor leído en el nuevo plan; se rechazan los negativos).
modeenumbodyobligatorio
Cascade mode: overtime | next_day (must match the preview).
start_atstringbodyobligatorio
New start — business-local naive datetime, no offset. Must match the preview and be in the future.
technician_idstringbodyobligatorio
Target technician (must match the preview).
POST/v1/job-requests/{id}/move/commit
curl -X POST "https://api.crisphive.com/v1/job-requests/9b2f6c3e-1a4d-4f0a-8f2e-7c5d1b3a9e01/move/commit" \ -H "Authorization: Bearer chsk_test_4eC8xQ9mZ2pL7Ka0rT" \ -H "Content-Type: application/json" \ -d '{ "expected_member_ids": [ "9b2f6c3e-1a4d-4f0a-8f2e-7c5d1b3a9e01" ], "expected_move_ids": [ "9b2f6c3e-1a4d-4f0a-8f2e-7c5d1b3a9e01" ], "expected_version": 1, "mode": "overtime", "start_at": "2030-06-14T09:00:00", "technician_id": "9b2f6c3e-1a4d-4f0a-8f2e-7c5d1b3a9e01" }'
Cuerpo de la solicitud
{
"expected_member_ids": [
],
"expected_move_ids": [
],
"expected_version": ,
"mode": ,
"start_at": ,
"technician_id":
}
Bearer