Appointments
The day board, desk booking, status changes, rescheduling, deposits, and service steps.
Reception and managers run the day from /dashboard/platform/appointments. It needs canManageAppointments.
Screens
| Route | What it does |
|---|---|
/dashboard/platform/appointments | Day board and booking list by stylist |
/dashboard/platform/appointments/new | Book at the desk |
/dashboard/platform/appointments/[id] | Status changes, reschedule, service steps, deposit, care notes |
Book at the desk
Pick service, stylist, and location
The form lists active services and the stylists who offer them. With more than one active location, choose the location too.
Choose a time
The slot picker calls checkAvailability for the stylist and date. Slots respect weekly hours, breaks, time off, existing bookings, the service buffer, and required resources.
Choose the client
Search existing clients by name, email, or phone, or enter a new client with name, phone, and email.
Book
bookAppointment stores a service snapshot, appointment segments, and a schedule revision. Operators skip the booking policy checkbox that online clients must accept. Add notes (up to 2000 characters) before saving.
Services flagged requiresConsultation or requiresPatchTest cannot be booked online. Desk staff can book them.
Statuses
transitionAppointment moves an appointment between pending, confirmed, in_progress, completed, cancelled, and no_show. Allowed moves from the code:
pendingtoconfirmed,cancelled,no_showconfirmedtoin_progress,cancelled,no_show- A no-show is only accepted after the start time has passed.
- A checked-out appointment cannot be restarted.
Cancelling or marking a no-show records the reason you give. Completion happens through checkout.
Reschedule
On the detail page, pick a new start time and give a reason. The page calls scheduleAppointmentSegments, which re-checks stylist and resource capacity for every segment and writes a new AppointmentScheduleRevision. Old revisions stay.
Service steps
Each appointment has AppointmentSegment rows of type service, processing, finishing, or cleanup. Move a step with transitionAppointmentSegment to planned, started, completed, skipped, or superseded. The detail page shows steps once there is more than one, or once the appointment is in progress.
Deposits
When a service has depositRequired, record the deposit from the detail page. processAppointmentDeposit takes the payment method (cash, credit_card, debit_card, apple_pay, google_pay), a provider code, and an idempotency key. The deposit is credited against the final checkout total.