TorbatYar/docs/phases/BeautyBusiness/phase-14-1-booking-engine.md
Mortezakoohjani d579d0b142 feat(loyalty): add Loyalty Platform Frontend module
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>
2026-07-27 10:50:55 +03:30

3.8 KiB

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
Framework ADR-013 · ADR-018 · ADR-019

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 · 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