Sur le calendrier, une absence est stockée une ligne par jour sans lien
entre les jours. La suppression et la modification n'agissaient donc que
sur le jour cliqué.
- Supprimer (handleDelete) : efface toutes les absences de l'employé
comprises dans la plage [début ; fin] du drawer (jours sans absence
ignorés, jour validé protégé côté backend).
- Modifier (handleSubmit) : remplacement de bloc — supprime l'ancien bloc
contigu de même type (vers l'avant depuis le jour cliqué) + les absences
recouvertes par la nouvelle plage, puis recrée la plage. Corrige le bug
du PATCH qui laissait des jours fantômes (raccourcissement) et des
doublons (allongement). updateAbsence n'est plus utilisé sur le calendrier.
Backend AbsenceWriteProcessor non touché : les écrans Heures verrouillent
les dates du drawer, le PATCH y reste mono-jour.
Doc : functional-rules.md, documentation-content.ts (in-app), CLAUDE.md.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>