fr
RéservationsPrévisualiser un déplacement d'intervention sur le tableau de planning

Prévisualiser un déplacement d'intervention sur le tableau de planning

Calcule (SANS écriture) le résultat du déplacement d'une intervention confirmée vers une nouvelle heure et/ou un nouveau technicien : où elle atterrit, chaque intervention ultérieure repoussée selon `mode`, et les avertissements que le coordinateur accepterait (interventions déplacées quittant leurs fenêtres confirmées, heures supplémentaires). Même technicien = simple déplacement horaire ; technicien différent = réaffectation manuelle. Lecture seule — appelable de façon répétée pendant le glisser-déposer ; la validation est un endpoint distinct. Voir SCHEDULE_BOARD_DESIGN.md. Détail des avertissements : un avertissement TECH_NOT_FEASIBLE porte `reason` = `cannot_arrive_in_time` (trajet depuis le lieu de départ du technicien / début de service ; `earliest_feasible_at` (RFC3339 UTC) est la première heure du jour même où il PEUT être sur site — suggérez-la comme créneau de dépose) | `missing_required_skills` | `not_available_today` (pas d'heures de travail, congé approuvé, ou hors zone de service) | `not_lead_tier`. Pour un déplacement P0, cet avertissement est indicatif (le coordinateur peut valider quand même) ; pour p1/p2/p3, la même condition est le 409 bloquant SCHEDULE_MOVE_TECH_INFEASIBLE. 409 ÉTAPES SUIVANTES : SCHEDULE_MOVE_NOT_ELIGIBLE (intervention non confirmée/non devisée/archivée/terminée — non déplaçable) · SCHEDULE_MOVE_IN_PROGRESS (technicien déjà en exécution — ne pas déplacer) · SCHEDULE_MOVE_IN_PAST (choisissez une heure future) · SCHEDULE_MOVE_OUTSIDE_WINDOW (heure d'atterrissage hors de la fenêtre confirmée par le client — blocage strict ; choisissez une heure à l'intérieur) · SCHEDULE_MOVE_SLOT_OCCUPIED (fenêtre d'atterrissage bloquée par un point d'ancrage inamovible — autre technicien/heure) · SCHEDULE_MOVE_TECH_INFEASIBLE (blocage strict non-P0 : technicien cible non qualifié/indisponible — voir les raisons de l'avertissement TECH_NOT_FEASIBLE ; changez de technicien ou d'heure) · SCHEDULE_MOVE_MULTIDAY_UNSUPPORTED (interventions multi-jours non déplaçables en v1) · SCHEDULE_MOVE_NO_WORKING_DAY (choisissez un jour ouvré) · SCHEDULE_MOVE_REQUIRES_FREE_SLOT (les déplacements non-P0 ne peuvent pas déplacer d'autres interventions — capacité libre uniquement, sauf si le propriétaire active allow_non_p0_displacement) · SCHEDULE_MOVE_CREW_UNSTAFFABLE (un poste d'équipe n'a pas de remplaçant réalisable à la nouvelle heure — une autre heure).

Arguments

idstringpathrequis
ID de la demande d'intervention (UUID ou short_code)
modeenumbodyrequis
Cascade mode for displaced jobs: overtime = stay same-day (tech works late); next_day = overflow rolls to the next working day.
start_atstringbodyrequis
New start — business-local naive datetime, no offset. Must be in the future.
technician_idstringbodyrequis
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"
}'
Corps de la requête
{
"mode": ,
"start_at": ,
"technician_id":
}

Réponses