| name | booking-domain |
| description | Implement or plan booking, availability, rescheduling, cancellation, and reminder flows in this salon SaaS. Use when touching calendars, time slots, deposits, booking states, or customer appointment journeys. |
Booking Domain
The booking system is a core domain. Treat it as business-critical.
Invariants
- a stylist cannot be double-booked for overlapping services
- availability must respect branch hours, staff schedules, breaks, and blocked times
- booking status changes must be explicit
- cancellation and no-show policies must be enforceable
- payment state and booking state must not drift silently
Modeling hints
- separate service duration from display order and marketing copy
- support multiple branches
- support optional deposit requirements
- store timezone-aware timestamps consistently
- keep reminder delivery asynchronous
Review checklist
- does the flow create impossible overlaps?
- is rescheduling audited?
- can another tenant see or mutate the booking?
- do tests cover happy path and denied path?