Appointment operations
Check-in & booking lifecycle
Use explicit booking states instead of free-form status changes, with every accepted transition recorded in history.
State-machine rule: only valid next states are offered. Completed, cancelled, rejected and no-show bookings are terminal in this DEV contract.
Main operational path
Pending → Confirmed
ConfirmApproval or payment can confirm a booking.
Confirmed → Checked in
ArrivedCustomer has physically/virtually arrived.
Checked in → In progress
StartStaff has started delivering the service.
In progress → Completed
CompleteService is finished and ready for final payment/follow-up.