fr
RéservationsValider l'insertion d'urgence + la reprogrammation en cascade

Valider l'insertion d'urgence + la reprogrammation en cascade

Applique la cascade prévisualisée par /emergency/preview : affecte l'intervention d'urgence au technicien et repousse les interventions déplacées (ou, avec `displacement_mode=reassign`, les réaffecte d'abord à leurs remplaçants prévisualisés), de manière atomique. Prend en charge Idempotency-Key. Le serveur recalcule le plan sous verrou et protège chaque intervention par son status_version — si quoi que ce soit a changé depuis l'aperçu, il renvoie 409 EMERGENCY_RESCHEDULE_PLAN_DRIFTED (reprévisualisez). Même corps que preview + `emergency_expected_version` facultatif. Fonctionnalité isolée (voir EMERGENCY_RESCHEDULE_DESIGN.md). 409 ÉTAPES SUIVANTES : EMERGENCY_RESCHEDULE_PLAN_DRIFTED — le planning a changé entre votre aperçu et cette validation (une autre réservation/un autre déplacement a pris la voie) : rappelez /preview, montrez le nouveau plan, puis validez. EMERGENCY_RESCHEDULE_SLOT_OCCUPIED — fenêtre d'atterrissage bloquée par un point d'ancrage inamovible (P0/équipe/multi-jours) : un autre technicien ou une autre heure. Autres codes — mêmes remèdes que /candidates.

Arguments

Idempotency-Keystringheaderoptionnel
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.
displacement_modeenumbodyoptionnel
Sort des interventions déplacées : reschedule (par défaut) ou reassign — doit correspondre à l'aperçu.
emergency_expected_versionintegerbodyoptionnel
Barrière de verrouillage optimiste issue de l'intervention prévisualisée (0 = barrière sur la version lue par le serveur).
emergency_job_idstringbodyrequis
ID de l'intervention P0 à insérer.
expected_move_idsarray<string>bodyoptionnel
ExpectedMoveIDs — les IDs des interventions déplacées renvoyés par l'aperçu (renvoyez À LA FOIS data.days[].moves[].job_id ET data.reassignments[].job_id). RECOMMANDÉ : si la cascade recalculée touchait un ensemble différent (une intervention réservée sur la voie depuis l'aperçu), la validation est rejetée avec EMERGENCY_RESCHEDULE_PLAN_DRIFTED au lieu de déplacer une intervention que le coordinateur n'a jamais vue. Omettez pour désactiver.
modeenumbodyrequis
Mode de cascade : overtime | next_day (doit correspondre à l'aperçu).
start_atstringbodyrequis
Début souhaité — date-heure locale de l'entreprise (naïve). Doit être dans le futur.
technician_idstringbodyrequis
Technicien cible (doit appartenir à l'entreprise).
POST/v1/job-requests/emergency/commit
curl -X POST "https://api.crisphive.com/v1/job-requests/emergency/commit" \
  -H "Authorization: Bearer chsk_test_4eC8xQ9mZ2pL7Ka0rT" \
  -H "Content-Type: application/json" \
  -d '{
  "displacement_mode": "reschedule",
  "emergency_expected_version": 1,
  "emergency_job_id": "9b2f6c3e-1a4d-4f0a-8f2e-7c5d1b3a9e01",
  "expected_move_ids": [
    "9b2f6c3e-1a4d-4f0a-8f2e-7c5d1b3a9e01"
  ],
  "mode": "overtime",
  "start_at": "2030-06-14T09:00:00",
  "technician_id": "9b2f6c3e-1a4d-4f0a-8f2e-7c5d1b3a9e01"
}'
Corps de la requête
{
"displacement_mode": ,
"emergency_expected_version": ,
"emergency_job_id": ,
"expected_move_ids": [
],
"mode": ,
"start_at": ,
"technician_id":
}

Réponses