gigafibre-fsm/services
louispaulb 777794cd28 fix(booking): garde anti-clobber F sur les confirmations de RDV + hold exclusif 5 min
Découverte du mapping : la confirmation de RDV (confirmWindow + POST /roster/book/confirm) écrivait assigned_tech
SANS la garde « déjà assigné dans F » que /roster/assign-job applique → une confirmation client (ou staff) pouvait
écraser une assignation faite manuellement dans F. Même classe que le bug double-assignation.

- fConflict(legacyId, techId) : garde PARTAGÉE extraite (ticketAssignState), réutilisée par les 3 chemins d'écriture
  (assign-job refactorisé pour l'utiliser → plus de dérive).
- confirmWindow (chemin CLIENT, pas de force) : si conflit F, N'ÉCRASE PAS — enregistre le créneau choisi
  (booking_status Proposé) et laisse le répartiteur confirmer le bon tech. Message client « nous confirmerons sous peu ».
- POST /roster/book/confirm (chemin STAFF) : 409 conflict sauf force=true → l'OPS réaffiche « déjà assigné dans F à X ».
- hold_minutes défaut 10 → 5 (décision Louis) : réservation exclusive 5 min → retour au pool → indicatif (revalidé
  à la confirmation via la garde ci-dessus).

Déployé (hub redémarré, sain, SSE clients se reconnectent via 187115c/89f7efc).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-19 14:30:40 -04:00
..
cogeco-checker fix(cogeco-checker): disable browser cache to rule it out as 401 cause 2026-06-01 21:47:19 -04:00
docuseal refactor: major cleanup — remove dead dispatch app, commit all backend code, extract client composables 2026-04-08 17:38:38 -04:00
email-editor feat(email-editor): persist easy-email JSON state for instant restore on reload 2026-05-22 06:04:48 -04:00
legacy-bridge feat(dispatch): write-back unifie Publier vers F + tickets perimes natifs 2026-07-16 10:49:28 -04:00
legacy-db refactor: major cleanup — remove dead dispatch app, commit all backend code, extract client composables 2026-04-08 17:38:38 -04:00
modem-bridge feat: flow editor, Gemini QR scanner with offline queue, dispatch planning v2 2026-04-22 10:44:17 -04:00
osrm feat(dispatch): OSRM road-time matrix for the VRP optimizer (Phase 2) 2026-07-02 13:48:43 -04:00
roster-solver hub+solveur : compétences multi par job + réservation + matérialisation quarts + app terrain natif 2026-07-07 20:46:42 -04:00
targo-hub fix(booking): garde anti-clobber F sur les confirmations de RDV + hold exclusif 5 min 2026-07-19 14:30:40 -04:00