es
ReservasPrevisualizar inserción de emergencia + reprogramación en cascada

Previsualizar inserción de emergencia + reprogramación en cascada

Calcula (SIN escribir) la cascada de insertar un trabajo de emergencia en un técnico a una hora elegida: dónde aterriza la emergencia + cada trabajo empujado hacia atrás, agrupado por día en hora local del negocio. `displacement_mode=reassign` en cambio entrega cada trabajo desplazado a otro técnico viable en su ventana ORIGINAL (promesa del mismo día) — los trabajos sin capacidad alternativa vuelven a reschedule y permanecen en `days`. `mode=overtime` mantiene a todos el mismo día (el técnico trabaja hasta tarde); `mode=next_day` traslada el excedente al siguiente día laborable. Solo lectura — seguro llamarlo repetidamente; el commit es un endpoint aparte. Función aislada (véase EMERGENCY_RESCHEDULE_DESIGN.md). 409 PRÓXIMOS PASOS: EMERGENCY_RESCHEDULE_SLOT_OCCUPIED — la ventana de aterrizaje está bloqueada por un trabajo que la cascada NO puede mover (otro P0, un trabajo de cuadrilla o multi-día): elija otro técnico (recorra la clasificación de /candidates) u otra hora; el desplazamiento nunca toca anclas P0/cuadrilla/multi-día. EMERGENCY_RESCHEDULE_NOT_ELIGIBLE / CREW_UNSUPPORTED / NO_WORKING_DAY / IN_PAST — mismos remedios que /candidates.

Argumentos

displacement_modeenumbodyopcional
Destino de los trabajos desplazados: reschedule (por defecto — empujados a ventanas posteriores) o reassign (entregados a otro técnico viable en su hora ORIGINAL; los trabajos sin capacidad vuelven a reschedule).
emergency_job_idstringbodyobligatorio
ID del trabajo P0 a insertar.
modeenumbodyobligatorio
Modo de cascada: overtime = los trabajos desplazados se quedan el mismo día (el técnico trabaja hasta tarde); next_day = el excedente se traslada al siguiente día laborable.
start_atstringbodyobligatorio
Inicio deseado — datetime naive en hora local del negocio (p. ej. "2026-07-20T09:00:00"). Debe estar en el futuro.
technician_idstringbodyobligatorio
Técnico objetivo (debe pertenecer al negocio).
POST/v1/job-requests/emergency/preview
curl -X POST "https://api.crisphive.com/v1/job-requests/emergency/preview" \
  -H "Authorization: Bearer chsk_test_4eC8xQ9mZ2pL7Ka0rT" \
  -H "Content-Type: application/json" \
  -d '{
  "displacement_mode": "reschedule",
  "emergency_job_id": "9b2f6c3e-1a4d-4f0a-8f2e-7c5d1b3a9e01",
  "mode": "overtime",
  "start_at": "2030-06-14T09:00:00",
  "technician_id": "9b2f6c3e-1a4d-4f0a-8f2e-7c5d1b3a9e01"
}'
Cuerpo de la solicitud
{
"displacement_mode": ,
"emergency_job_id": ,
"mode": ,
"start_at": ,
"technician_id":
}

Respuestas