Add frontend/modules/loyalty with types, API client, design system, feature pages and thin App Router routes under app/loyalty/. BFF proxy at app/api/loyalty/. Include loyalty frontend docs. Co-authored-by: Cursor <cursoragent@cursor.com>
104 lines
3.8 KiB
Markdown
104 lines
3.8 KiB
Markdown
# 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)
|