reservation.booking-coreReservation et disponibilites
Transformer une demande en reservation sans surbooking, avec prix et disponibilite revalides cote serveur.
Le problème qu'il règle
Un calendrier joli ne suffit pas : plusieurs canaux peuvent reserver la meme ressource au meme instant.
Preuve — En production
Tourne chez un client qui s'en sert, données réelles persistées.
Empaquetage — Embarqué
Tissé dans le code du client. À réécrire, pas à copier.
Les écrans
4Back-office · 2
| Route | Écran | Ce qu'on y fait | La forme | Les états |
|---|---|---|---|---|
/appointments | Reservations | Traiter et rechercher les dossiers. | Table/fiches, filtres, actions et historique. | Demande, confirmee, annulee, no-show, terminee. |
/calendar | Calendrier | Visualiser l'occupation et agir dans le contexte. | Jour/semaine/mois, ressources et detail lateral. | Vide, surcharge, fermeture, conflit. |
Site public · 1
| Route | Écran | Ce qu'on y fait | La forme | Les états |
|---|---|---|---|---|
/book/[business] | Reserver | Choisir une prestation disponible et confirmer. | Wizard progressif et recapitulatif. | Chargement, aucun creneau, collision, acompte, succes. |
Espace client · 1
| Route | Écran | Ce qu'on y fait | La forme | Les états |
|---|---|---|---|---|
/portal/[token] | Portail client | Consulter et modifier selon les regles. | Resume, actions autorisees et contact. | Actif, hors delai, annule, token invalide. |
Où l'IA intervient
1L'autonomie se lit avant la technique. « Propose » est le défaut de la maison : l'outil prépare, une personne valide. Tout ce qui « agit » doit nommer son garde-fou.
Cherche les disponibilites et prepare la reservation avec les memes APIs.
Tool calling
Ce qui tourne tout seul
2| Déclencheur | Effet | Comment |
|---|---|---|
| Reservation confirmee | Envoyer confirmation et synchroniser le calendrier | Outbox + Brevo/WhatsApp + Google Calendar |
| Annulation | Liberer l'inventaire et proposer la place a la waitlist | RPC + worker |
Ce qu'on peut activer dedans
6Disponibilite
availabilityCreneau, capacite partagee, praticien ou actif physique.
Tunnel
wizardOffre, date, participants/client, recap et acompte.
Agenda
calendarJour, semaine, mois et detail.
Liste d'attente
waitlistPromotion controlee apres liberation.
Recurrence
recurringSerie editable sans perdre l'historique.
Portail client
portalSuivi/deplacement/annulation tokenises.
Sous le capot
Données
7servicesresourcesappointmentsblocked_slotsoccurrenceswaitlistappointment_events
Composants réutilisables
5BookingWizardAvailabilityPickerCalendarAppointmentDetailWaitlist
Services externes
4- · Google Calendar
- · Brevo
- · SystemPay
Rôles et droits
3- · Client
- · Operateur
- · Manager
Ce qu'il faut autour
Il ne cohabite pas avec
Aucun conflit connu.
D'autres en dépendent
Les pièges
2Chacun vient d'un incident réel, relevé dans les commentaires du code d'origine. C'est la partie du catalogue qui vaut le plus cher : elle évite de repayer la même leçon.
- La contrainte anti-chevauchement vit en DB, pas seulement dans l'UI.
- Un prix inconnu n'est jamais zero.
Ce qu'il ne fait pas, et ce qui reste à faire
Hors périmètre
2- · Yield management
- · Channel manager universel
Pour le mettre vraiment sur étagère
2- · Separer adapters appointment/capacity/resource.
- · Publier API idempotente et migrations de reference.
Où c'est prouvé
3Studio Belleza
En production/home/jordy/projects/Studio Belleza/studio-belleza/src/lib/slots.ts
Pahono (moteur Bookflow)
Livré/home/jordy/projects/PACIFIK'AI/solutions/bookflow/dashboard/src/lib/booking-core.ts
Aqua Safari / résa multi-opérateur
Démo simulée/home/jordy/projects/tourisme-backoffice/src/lib/booking/disponibilite.ts
Vérifié contre le code le 2026-08-27. Au-delà de quatre-vingt-dix jours sans revérification, une fiche décrit un souvenir, pas un dépôt.