docs: aligner les statuts de reservation sur l enumeration reelle

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_018BAUeCFpDkRD6tU5wGsc1C
This commit is contained in:
David 2026-09-07 21:40:49 +02:00
parent a759e7b018
commit 9a3e1db048

View File

@ -60,14 +60,30 @@ Expiry : 1 heure. Si expiré, l'admin doit renvoyer un nouveau lien.
## Statuts des réservations CSV
Valeurs réelles de l'énumération `CsvBookingStatus` (`domain/entities/csv-booking.entity.ts`) :
| Statut | Description |
|--------|-------------|
| pending | En attente d'assignation carrier |
| sent | Lien magique envoyé au carrier |
| accepted | Carrier a accepté |
| rejected | Carrier a refusé |
| in_transit | En cours de transport |
| delivered | Livré |
| PENDING_PAYMENT | Réservation créée, commission non payée |
| PENDING_BANK_TRANSFER | Virement déclaré, en attente de validation par l'administration |
| PENDING | Commission payée, en attente de réponse du transporteur |
| ACCEPTED | Le transporteur a accepté |
| REJECTED | Le transporteur a refusé |
| CANCELLED | Annulée par l'utilisateur |
---
## Suppression d'une réservation impayée
`DELETE /api/v1/csv-bookings/:id` supprime définitivement une réservation **dont la commission n'a pas été payée**, c'est-à-dire au seul statut `PENDING_PAYMENT`. Seul le propriétaire peut le faire ; une réservation appartenant à quelqu'un d'autre répond `404`, sans se distinguer d'une réservation inexistante.
Une fois la commission payée, la réservation est partie chez le transporteur et porte une trace comptable : elle ne peut plus qu'être **annulée** (`PATCH :id/cancel`), jamais effacée. L'API répond alors `400`.
`PENDING_BANK_TRANSFER` est volontairement exclu : le virement déclaré peut être en cours d'acheminement, et supprimer la réservation priverait l'administration de ce qu'elle doit rapprocher à sa réception. Étendre la règle à ce statut est une décision comptable, pas technique — il suffit d'ajouter le statut à `DELETABLE_STATUSES` dans l'entité.
Les documents déjà téléversés restent dans le stockage objet, conformément à la politique appliquée à la suppression d'un document isolé (conservation pour l'audit). Le quota de réservations n'est pas affecté : il ne compte que les expéditions payées.
Côté interface, l'action « Supprimer » n'apparaît dans le menu d'une ligne que pour les réservations impayées, à côté de « Modifier » et « Payer ». Elle demande une confirmation qui nomme la réservation concernée.
---
@ -75,6 +91,7 @@ Expiry : 1 heure. Si expiré, l'admin doit renvoyer un nouveau lien.
| Route | Description |
|-------|-------------|
| /dashboard/bookings | Liste des réservations (voir, modifier, payer, supprimer) |
| /dashboard/csv-bookings | Liste admin des réservations CSV |
| /carrier/auth | Page d'auth carrier (via magic link) |
| /carrier/booking | Dashboard carrier (accept/reject) |