es
ReservasPrevisualizar un movimiento de trabajo en el tablero de agenda

Previsualizar un movimiento de trabajo en el tablero de agenda

Calcula (SIN escribir) el resultado de mover un trabajo confirmado a una nueva hora y/o técnico: dónde aterriza, cada trabajo posterior empujado hacia atrás según `mode`, y las advertencias que el coordinador aceptaría (trabajos desplazados que salen de sus ventanas confirmadas, horas extra). Mismo técnico = movimiento puro de hora; técnico distinto = reasignación manual. Solo lectura — seguro llamarlo repetidamente mientras se arrastra; el commit es un endpoint aparte. Véase SCHEDULE_BOARD_DESIGN.md. Detalle de las advertencias: una advertencia TECH_NOT_FEASIBLE lleva `reason` = `cannot_arrive_in_time` (desplazamiento desde la ubicación de inicio del día del técnico / inicio de turno; `earliest_feasible_at` (RFC3339 UTC) es la primera hora del mismo día en que PUEDE estar in situ — sugiérala como franja de destino) | `missing_required_skills` | `not_available_today` (sin horas de trabajo, permiso aprobado o fuera del área de servicio) | `not_lead_tier`. Para un movimiento P0 esta advertencia es orientativa (el coordinador puede hacer commit igualmente); para p1/p2/p3 la misma condición es el 409 rígido SCHEDULE_MOVE_TECH_INFEASIBLE. 409 PRÓXIMOS PASOS: SCHEDULE_MOVE_NOT_ELIGIBLE (trabajo no confirmado/no cotizado/archivado/completado — no movible) · SCHEDULE_MOVE_IN_PROGRESS (el técnico ya está ejecutando — no lo mueva) · SCHEDULE_MOVE_IN_PAST (elija una hora futura) · SCHEDULE_MOVE_OUTSIDE_WINDOW (hora de aterrizaje fuera de la ventana confirmada por el cliente — bloqueo rígido; elija una hora dentro de ella) · SCHEDULE_MOVE_SLOT_OCCUPIED (ventana de aterrizaje bloqueada por un ancla inamovible — otro técnico/hora) · SCHEDULE_MOVE_TECH_INFEASIBLE (bloqueo rígido no-P0: el técnico objetivo no cualifica/no está disponible — véanse los motivos de la advertencia TECH_NOT_FEASIBLE; cambie de técnico u hora) · SCHEDULE_MOVE_MULTIDAY_UNSUPPORTED (los trabajos multi-día no son movibles en v1) · SCHEDULE_MOVE_NO_WORKING_DAY (elija un día laborable) · SCHEDULE_MOVE_REQUIRES_FREE_SLOT (los movimientos no-P0 no pueden desplazar — solo capacidad libre, salvo que el propietario habilite allow_non_p0_displacement) · SCHEDULE_MOVE_CREW_UNSTAFFABLE (un puesto de cuadrilla no tiene reemplazo viable a la nueva hora — otra hora).

Argumentos

idstringpathobligatorio
ID de la solicitud de trabajo (UUID o short_code)
modeenumbodyobligatorio
Cascade mode for displaced jobs: overtime = stay same-day (tech works late); next_day = overflow rolls to the next working day.
start_atstringbodyobligatorio
New start — business-local naive datetime, no offset. Must be in the future.
technician_idstringbodyobligatorio
Target technician — may equal the current tech (pure time move) or differ (manual reassign).
POST/v1/job-requests/{id}/move/preview
curl -X POST "https://api.crisphive.com/v1/job-requests/9b2f6c3e-1a4d-4f0a-8f2e-7c5d1b3a9e01/move/preview" \
  -H "Authorization: Bearer chsk_test_4eC8xQ9mZ2pL7Ka0rT" \
  -H "Content-Type: application/json" \
  -d '{
  "mode": "overtime",
  "start_at": "2030-06-14T09:00:00",
  "technician_id": "9b2f6c3e-1a4d-4f0a-8f2e-7c5d1b3a9e01"
}'
Cuerpo de la solicitud
{
"mode": ,
"start_at": ,
"technician_id":
}

Respuestas