Il y a un souci dans la taverne : le voyageur reçoit « Votre table vous attend » dès qu'il remplit le formulaire. Or rien n'est encore confirmé : Gorm peut encore refuser la réservation, un soir de festin complet. Et quand il annule une réservation, le voyageur n'en sait rien.
Le parchemin de confirmation doit partir quand la taverne confirme. Et un parchemin d'annulation, quand elle annule.
Les événements du workflow
À chaque transition, le workflow annonce chacune de ses étapes :
guard: la transition est-elle permise ?leave: l'objet quitte sa place ;transition: il est en chemin ;enter, puisentered: il est arrivé à sa nouvelle place ;completed: c'est fini ;announce: pour chaque transition désormais possible.
Chaque événement se décline par workflow, par transition ou par place (workflow.reservation.entered.confirmee). Réagir à un changement de statut, c'est écouter le bon.
L'intérêt : que la réservation soit confirmée depuis le registre, une commande ou l'API, le parchemin part.
Votre mission
- Quand une réservation arrive à
confirmee, le parchemin de confirmation part. - Quand elle arrive à
annulee, un parchemin d'annulation part : sujet « Votre réservation au Dragon Ivre est annulée », avec le titre « Votre réservation est annulée », le nom, la date, et un lien « Réserver une autre table ». ÉcrivezParcheminier::envoyerLAnnulation()et son template. - Annuler une réservation déjà confirmée n'envoie que l'annulation ; honorer n'envoie rien.
- Le formulaire de réservation n'envoie plus la confirmation.
Pour essayer : connectez-vous avec gorm@dragon-ivre.fr / tonneau, confirmez et annulez des réservations dans le registre, puis ouvrez la 📬 boîte aux lettres.