# Phase: Booking Engine | Field | Value | | --- | --- | | Identifier | `beauty-business-14-1` | | Status | Planned | | Owner | Platform | | Module(s) | `beauty_business.schedules`, `beauty_business.appointments`, `beauty_business.waiting_list` | | Service(s) | `beauty_business` | | Depends On | `beauty-business-14-0` | | ADR(s) | TBD | | Manifest | [phase-manifest.yaml](../../ai-framework/phase-manifest.yaml) | | Framework | [ADR-013](../../architecture/adr/ADR-013.md) · [ADR-018](../../architecture/adr/ADR-018.md) · [ADR-019](../../architecture/adr/ADR-019.md) | ## Objective Deliver the beauty-specific **booking engine**: staff schedules, availability windows, appointment types, appointment lifecycle (request → confirm → check-in → complete / cancel / no-show), conflict detection, and waiting list — without owning Communication delivery, Accounting postings, or full customer CRM profiles. ## Enterprise Phase Discovery > **Required before Implementation.** | Field | Value | | --- | --- | | Discovery date | Pending | | Inputs reviewed | Phase 14.0 handover · [beauty-business-roadmap.md](../../beauty-business-roadmap.md) · Sports Center / Healthcare booking patterns (reference only) | ### Target Responsibility (this phase when Complete) - Schedules and availability per staff and branch - Appointment aggregate with state machine and audit trail - Waiting list when slots unavailable - Events: `beauty_business.appointment.*`, `beauty_business.schedule.*` - Permissions: `beauty_business.appointments.*`, `beauty_business.schedules.*` ### Explicitly Excluded - Service catalog pricing (14.3) — appointment may reference service ref UUID only - Customer profile management (14.4) — customer ref only - SMS/email reminders (Communication client in 14.7) - Payment capture (Accounting intents later) - Healthcare appointment types ## Business Analysis | Item | Detail | | --- | --- | | Actors | Receptionist, stylist, customer (via portal API later) | | Business capabilities | Book, reschedule, cancel, check-in, no-show handling | | Success metrics | No double-booking; tenant isolation; lifecycle audit | | Non-goals | Multi-vertical generic scheduling platform | ## Scope ### In Scope - StaffSchedule, StaffAvailability, ScheduleException - AppointmentType, Appointment, AppointmentStatusHistory - WaitingListEntry - Conflict rules (staff + optional room ref from 14.2) - List APIs with pagination, filter, sort, search ### High-Level Entities | Entity | Purpose | | --- | --- | | StaffSchedule | Recurring working pattern | | StaffAvailability | Bookable slots | | AppointmentType | Consultation, service, follow-up | | Appointment | Core booking aggregate | | WaitingListEntry | Queue for full slots | ### Events (Planned) | Event | When | | --- | --- | | `beauty_business.appointment.created` | New booking | | `beauty_business.appointment.confirmed` | Confirmed | | `beauty_business.appointment.checked_in` | Customer arrived | | `beauty_business.appointment.completed` | Service done | | `beauty_business.appointment.cancelled` | Cancelled | | `beauty_business.appointment.no_show` | No-show marked | ## Out of Scope - Salon rooms/stations management (14.2) - Service definitions and pricing (14.3) - Customer preferences and history (14.4) - Package session deduction (14.5) - Commission calculation (14.6) - Marketing reminders (14.7) ## Completion Criteria - [ ] Booking lifecycle complete with tests - [ ] No Communication/Accounting implementation inside booking service layer - [ ] Healthcare module untouched ## Related Documents - [Phase 14.0](phase-14-0-beauty-foundation.md) - [Beauty Business Roadmap](../../beauty-business-roadmap.md) - [Phase area README](README.md)