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
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" }'