CarnetDocumenter son projet web
Chapitres

Chapitres

Sur cette page

ADR 001 : conserver les réservations annulées

Date : 10 septembre 2026. Statut : accepté pour la démonstration pédagogique. Portée : règles de réservation du kit en mémoire, sans base de données déployée.

Contexte

L’association fictive veut retrouver qu’une personne a déjà réservé une séance, même après annulation. Une personne peut réserver plusieurs séances, mais une seule réservation par couple personne-séance est conservée. Le kit doit rendre cette règle observable avec quelques exemples.

La conservation d’un enregistrement avec son statut courant permet de retrouver une annulation. Elle ne constitue pas un journal complet de tous les changements.

Options examinées

OptionConséquence
Supprimer la réservation annuléeLibère la place, mais perd la trace de la réservation dans ce modèle
Conserver la réservation et autoriser une seconde créationConserve davantage d’occurrences, mais change la règle d’unicité retenue
Conserver la réservation et permettre sa réactivationNécessite de définir les permissions et le contrôle de capacité lors du retour
Conserver la réservation sans proposer de réactivationRend les deux états et le refus de doublon explicites dans cette première démonstration

Décision

L’annulation remplace le statut confirmé par annulé et conserve la réservation dans la liste. Seules les réservations confirmées occupent une place. Une seconde création pour le même couple personne-séance est refusée, quel que soit le statut de la précédente.

stateDiagram-v2 accDescr: États du modèle retenu à la date de la décision. [*] --> Confirmée : place attribuée Confirmée --> Annulée : annulation note right of Annulée La réservation reste dans l'historique. Une nouvelle création pour le même couple personne / atelier est refusée. La réactivation n'est pas proposée dans la démo. end note

Source Mermaid de cet état historique.

Conséquences

Une place annulée devient disponible pour une autre personne. La personne qui a annulé ne peut pas revenir par une nouvelle création. Cette restriction doit apparaître dans l’aide et dans le message expliqué par le support.

Une demande future de réactivation devra préciser la disponibilité, les permissions et le maintien de l’identifiant. Si elle est acceptée, une nouvelle décision remplacera celle-ci. Cet ADR gardera la trace du choix initial.

Dans une application persistante, il faudra définir la durée de conservation, la suppression des données personnelles et les contraintes de base appropriées. Le kit ne choisit pas de politique de conservation réelle et n’implémente aucune migration SQL.

Vérifier le choix

Lancer npm test et npm run test:bdd depuis la racine du kit. Les tests rendent observable le comportement retenu. Leur réussite ne décide pas si la restriction convient encore aux utilisateurs.