Outils pour utilisateurs

Outils du site


ujusum:1-implantation:5-reservation-calendrier

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

ujusum:1-implantation:5-reservation-calendrier [2026/06/06 03:14] – créée 91.170.108.99ujusum:1-implantation:5-reservation-calendrier [2026/06/29 22:00] (Version actuelle) – supprimée 83.202.252.200
Ligne 1: Ligne 1:
-====== Sprint 4 — Réservation & Calendrier ====== 
  
-===== Objectif du Sprint ===== 
- 
-Mettre en œuvre le moteur de réservation de la plateforme. 
- 
-À l'issue du Sprint 4 : 
- 
-  * Un client peut vérifier la disponibilité d'un bien 
-  * Un client peut calculer le coût de son séjour 
-  * Un client peut créer une réservation 
-  * Les voyageurs sont enregistrés 
-  * Le calendrier est automatiquement bloqué 
-  * L'agence peut gérer les réservations 
-  * Les conflits de réservation sont empêchés 
- 
-Ce sprint constitue le premier parcours métier complet générateur de chiffre d'affaires. 
- 
----- 
- 
-====== Périmètre ====== 
- 
-===== Modules concernés ===== 
- 
-<code> 
-ReservationsModule 
- 
-ReservationCalendarModule 
- 
-ReservationGuestModule 
- 
-PricingModule 
- 
-AvailabilityEngineModule 
-</code> 
- 
----- 
- 
-====== Workflow métier ====== 
- 
-<code> 
-Recherche Bien 
- 
- 
- 
-Consultation Disponibilité 
- 
- 
- 
-Sélection Dates 
- 
- 
- 
-Calcul Tarif 
- 
- 
- 
-Saisie Voyageurs 
- 
- 
- 
-Création Réservation 
- 
- 
- 
-Blocage Calendrier 
- 
- 
- 
-Confirmation 
-</code> 
- 
----- 
- 
-====== User Stories ====== 
- 
-===== US-401 : Vérifier la disponibilité ===== 
- 
-**En tant que client** 
- 
-Je souhaite connaître les dates disponibles 
- 
-Afin de réserver un séjour. 
- 
----- 
- 
-===== Endpoint ===== 
- 
-<code http> 
-GET /properties/{id}/availability 
-</code> 
- 
----- 
- 
-===== Paramètres ===== 
- 
-<code> 
-startDate 
- 
-endDate 
-</code> 
- 
----- 
- 
-===== Réponse ===== 
- 
-<code json> 
-{ 
-  "available": true, 
-  "conflicts": [] 
-} 
-</code> 
- 
----- 
- 
-===== Critères ===== 
- 
-  * Vérification temps réel 
-  * Exclusion des périodes bloquées 
-  * Exclusion des réservations confirmées 
- 
----- 
- 
-====== US-402 : Calculer un tarif ====== 
- 
-===== Endpoint ===== 
- 
-<code http> 
-POST /pricing/calculate 
-</code> 
- 
----- 
- 
-===== Données ===== 
- 
-<code json> 
-{ 
-  "propertyId": "uuid", 
-  "startDate": "2027-07-01", 
-  "endDate": "2027-07-15", 
-  "guestCount": 4 
-} 
-</code> 
- 
----- 
- 
-===== Calcul ===== 
- 
-<code> 
-Nombre de nuits 
- 
-+ 
- 
-Tarif saisonnier 
- 
-+ 
- 
-Taxes 
- 
-+ 
- 
-Options 
- 
-= 
- 
-Montant total 
-</code> 
- 
----- 
- 
-===== Réponse ===== 
- 
-<code json> 
-{ 
-  "nights": 14, 
-  "subtotal": 2100, 
-  "taxes": 150, 
-  "fees": 50, 
-  "total": 2300 
-} 
-</code> 
- 
----- 
- 
-====== US-403 : Créer une réservation ====== 
- 
-===== Endpoint ===== 
- 
-<code http> 
-POST /reservations 
-</code> 
- 
----- 
- 
-===== Données ===== 
- 
-<code json> 
-{ 
-  "propertyId": "uuid", 
-  "startDate": "2027-07-01", 
-  "endDate": "2027-07-15", 
-  "guestCount": 4 
-} 
-</code> 
- 
----- 
- 
-===== Critères ===== 
- 
-  * Disponibilité vérifiée 
-  * Tarif recalculé 
-  * Réservation créée 
-  * Numéro généré 
- 
----- 
- 
-===== Numérotation ===== 
- 
-<code> 
-RES-2027-000001 
-</code> 
- 
----- 
- 
-====== US-404 : Ajouter les voyageurs ====== 
- 
-===== Endpoint ===== 
- 
-<code http> 
-POST /reservations/{id}/guests 
-</code> 
- 
----- 
- 
-===== Données ===== 
- 
-<code> 
-Nom 
- 
-Prénom 
- 
-Date naissance 
- 
-Nationalité 
-</code> 
- 
----- 
- 
-===== Contraintes ===== 
- 
-<code> 
-Nombre voyageurs ≤ capacité bien 
-</code> 
- 
----- 
- 
-====== US-405 : Consulter une réservation ====== 
- 
-===== Endpoint ===== 
- 
-<code http> 
-GET /reservations/{id} 
-</code> 
- 
----- 
- 
-===== Informations ===== 
- 
-<code> 
-Référence 
- 
-Bien 
- 
-Voyageurs 
- 
-Montant 
- 
-Statut 
- 
-Historique 
-</code> 
- 
----- 
- 
-====== US-406 : Modifier une réservation ====== 
- 
-===== Endpoint ===== 
- 
-<code http> 
-PUT /reservations/{id} 
-</code> 
- 
----- 
- 
-===== Modifications autorisées ===== 
- 
-<code> 
-Dates 
- 
-Nombre voyageurs 
- 
-Commentaires 
-</code> 
- 
----- 
- 
-===== Conditions ===== 
- 
-<code> 
-Statut = PENDING 
-</code> 
- 
----- 
- 
-====== US-407 : Annuler une réservation ====== 
- 
-===== Endpoint ===== 
- 
-<code http> 
-POST /reservations/{id}/cancel 
-</code> 
- 
----- 
- 
-===== Conséquences ===== 
- 
-<code> 
-Statut = CANCELLED 
- 
- 
- 
-Libération calendrier 
- 
- 
- 
-Historisation 
-</code> 
- 
----- 
- 
-====== Gestion du calendrier ====== 
- 
-===== US-408 : Blocage automatique ===== 
- 
-Lorsqu'une réservation est créée : 
- 
-<code> 
-Création réservation 
- 
- 
- 
-Création événement calendrier 
- 
- 
- 
-Blocage période 
-</code> 
- 
----- 
- 
-===== Statuts calendrier ===== 
- 
-<code> 
-AVAILABLE 
- 
-PENDING 
- 
-BOOKED 
- 
-MAINTENANCE 
- 
-BLOCKED 
-</code> 
- 
----- 
- 
-====== US-409 : Visualiser le calendrier ====== 
- 
-===== Endpoint ===== 
- 
-<code http> 
-GET /properties/{id}/calendar 
-</code> 
- 
----- 
- 
-===== Vues ===== 
- 
-<code> 
-Mensuelle 
- 
-Trimestrielle 
- 
-Annuelle 
-</code> 
- 
----- 
- 
-====== Gestion tarifaire ====== 
- 
-===== US-410 : Calcul saisonnier ===== 
- 
-===== Exemple ===== 
- 
-<code> 
-Basse saison 
- 
-100 € 
- 
-Haute saison 
- 
-180 € 
- 
-Très haute saison 
- 
-250 € 
-</code> 
- 
----- 
- 
-===== Moteur ===== 
- 
-Le calcul doit : 
- 
-  * Découper le séjour par période 
-  * Appliquer le tarif adéquat 
-  * Additionner les montants 
- 
----- 
- 
-====== US-411 : Gestion des frais ===== 
- 
-===== Types ===== 
- 
-<code> 
-Frais ménage 
- 
-Frais dossier 
- 
-Taxe séjour 
- 
-Caution 
-</code> 
- 
----- 
- 
-====== Workflow réservation ====== 
- 
-===== États ===== 
- 
-<code> 
-PENDING 
- 
- 
- 
-CONFIRMED 
- 
- 
- 
-SIGNED 
- 
- 
- 
-COMPLETED 
- 
-└── CANCELLED 
-</code> 
- 
----- 
- 
-====== Modèle Prisma ====== 
- 
-===== Reservation ===== 
- 
-<code prisma> 
-model Reservation { 
- 
-  id                  String @id @default(uuid()) 
- 
-  reservationNumber   String @unique 
- 
-  propertyId          String 
- 
-  tenantId            String 
- 
-  startDate           DateTime 
- 
-  endDate             DateTime 
- 
-  guestCount          Int 
- 
-  totalAmount         Decimal 
- 
-  status              ReservationStatus 
- 
-  createdAt           DateTime @default(now()) 
- 
-} 
-</code> 
- 
----- 
- 
-===== ReservationGuest ===== 
- 
-<code prisma> 
-model ReservationGuest { 
- 
-  id                String @id @default(uuid()) 
- 
-  reservationId     String 
- 
-  firstName         String 
- 
-  lastName          String 
- 
-  birthDate         DateTime? 
- 
-  nationality       String? 
-} 
-</code> 
- 
----- 
- 
-===== ReservationEvent ===== 
- 
-<code prisma> 
-model ReservationEvent { 
- 
-  id                String @id @default(uuid()) 
- 
-  reservationId     String 
- 
-  eventType         String 
- 
-  payload           Json 
- 
-  createdAt         DateTime 
-} 
-</code> 
- 
----- 
- 
-===== CalendarEvent ===== 
- 
-<code prisma> 
-model CalendarEvent { 
- 
-  id                String @id @default(uuid()) 
- 
-  propertyId        String 
- 
-  reservationId     String? 
- 
-  startDate         DateTime 
- 
-  endDate           DateTime 
- 
-  status            String 
-} 
-</code> 
- 
----- 
- 
-====== Architecture Backend ====== 
- 
-<code> 
-src/modules/reservations 
- 
-├── reservations 
- 
-├── guests 
- 
-├── pricing 
- 
-├── calendar 
- 
-├── availability 
- 
-└── events 
-</code> 
- 
----- 
- 
-====== Domain Services ====== 
- 
-<code> 
-AvailabilityService 
- 
-ReservationService 
- 
-PricingService 
- 
-CalendarService 
- 
-ReservationNumberGenerator 
-</code> 
- 
----- 
- 
-====== Événements métier ====== 
- 
-===== ReservationCreated ===== 
- 
-<code> 
-ReservationCreated 
-</code> 
- 
----- 
- 
-===== ReservationCancelled ===== 
- 
-<code> 
-ReservationCancelled 
-</code> 
- 
----- 
- 
-===== ReservationConfirmed ===== 
- 
-<code> 
-ReservationConfirmed 
-</code> 
- 
----- 
- 
-====== Swagger ====== 
- 
-===== Tags ===== 
- 
-<code> 
-Reservations 
- 
-ReservationGuests 
- 
-ReservationPricing 
- 
-ReservationCalendar 
-</code> 
- 
----- 
- 
-===== Volume API ===== 
- 
-Environ : 
- 
-<code> 
-25 endpoints 
-</code> 
- 
----- 
- 
-====== Frontend ====== 
- 
-===== Pages publiques ===== 
- 
-<code> 
-/property/[slug] 
- 
-/booking 
- 
-/booking/confirmation 
-</code> 
- 
----- 
- 
-===== Espace client ===== 
- 
-<code> 
-/reservations 
- 
-/reservations/[id] 
-</code> 
- 
----- 
- 
-===== Composants ===== 
- 
-<code> 
-AvailabilityCalendar 
- 
-BookingForm 
- 
-BookingSummary 
- 
-GuestForm 
- 
-ReservationTimeline 
-</code> 
- 
----- 
- 
-====== Tests ====== 
- 
-===== Unitaires ===== 
- 
-<code> 
-PricingService 
- 
-AvailabilityService 
- 
-ReservationService 
- 
-CalendarService 
-</code> 
- 
----- 
- 
-===== Intégration ===== 
- 
-<code> 
-Check Availability 
- 
- 
- 
-Calculate Price 
- 
- 
- 
-Create Reservation 
- 
- 
- 
-Block Calendar 
-</code> 
- 
----- 
- 
-===== E2E ===== 
- 
-<code> 
-Recherche 
- 
- 
- 
-Choix dates 
- 
- 
- 
-Calcul prix 
- 
- 
- 
-Création réservation 
- 
- 
- 
-Consultation réservation 
-</code> 
- 
----- 
- 
-====== Définition de terminé ====== 
- 
-Le Sprint 4 est terminé lorsque : 
- 
-  * Disponibilités fonctionnelles 
-  * Calcul tarifaire fonctionnel 
-  * Réservations fonctionnelles 
-  * Voyageurs fonctionnels 
-  * Calendrier fonctionnel 
-  * Blocages automatiques fonctionnels 
-  * Swagger à jour 
-  * Tests verts 
-  * CI verte 
- 
----- 
- 
-====== Livrables ====== 
- 
-  * ReservationsModule 
-  * ReservationGuestModule 
-  * ReservationCalendarModule 
-  * PricingModule 
-  * AvailabilityEngineModule 
-  * DTO 
-  * Swagger 
-  * Tests 
-  * Migrations Prisma 
- 
----- 
- 
-====== Démonstration Sprint ====== 
- 
-Scénario métier : 
- 
-<code> 
-1. Consultation d'un bien 
- 
-2. Vérification disponibilité 
- 
-3. Calcul tarif 
- 
-4. Création réservation 
- 
-5. Ajout voyageurs 
- 
-6. Blocage calendrier 
- 
-7. Consultation réservation 
-</code> 
- 
----- 
- 
-====== Sprint suivant ====== 
- 
-===== Sprint 5 — Contrats & Signature Électronique ===== 
- 
-Objectif : 
- 
-Transformer une réservation en engagement contractuel juridiquement opposable. 
- 
-Modules concernés : 
- 
-<code> 
-ContractsModule 
- 
-ContractTemplateModule 
- 
-ContractGenerationModule 
- 
-SignatureModule 
- 
-DocumentModule 
-</code> 
- 
-Fonctionnalités : 
- 
-  * Génération automatique du contrat 
-  * Gestion des modèles 
-  * Production PDF 
-  * Signature électronique 
-  * Archivage des documents 
-  * Téléchargement des contrats 
- 
-À l'issue du Sprint 5, une réservation pourra être contractualisée et signée électroniquement par le client. 
ujusum/1-implantation/5-reservation-calendrier.1780708486.txt.gz · Dernière modification : 2026/06/06 03:14 de 91.170.108.99 · Actuellement bloqué par : 192.168.0.100,216.73.216.20

DokuWiki Appliance - Powered by TurnKey Linux