Appointment Lifecycle¶
Models the lifecycle of a customer Appointment — a scheduled interaction between a customer and a store associate or specialist (personal shopping, stylist session, product consultation, repair drop-off). Part of the Clienteling domain.
Object: appointment ·
States: 6 ·
Transitions: 7
State Diagram¶
flowchart LR
%% ── classDef palette ─────────────────────────────────────
classDef stInit fill:#0d9488,stroke:#0f766e,color:#fff,font-weight:bold
classDef stNorm fill:#3b82f6,stroke:#2563eb,color:#fff
classDef stOk fill:#16a34a,stroke:#15803d,color:#fff,font-weight:bold
classDef stFail fill:#dc2626,stroke:#b91c1c,color:#fff,font-weight:bold
classDef stHold fill:#d97706,stroke:#b45309,color:#fff
%% ── nodes ───────────────────────────────────────────────
requested(["Requested"])
confirmed["Confirmed"]
in_progress["In Progress"]
completed[["Completed"]]
no_show[["No Show"]]
cancelled[["Cancelled"]]
%% ── transitions ─────────────────────────────────
requested -->|"clienteling-session-created"| confirmed
requested -->|"clienteling-session-created"| cancelled
confirmed -->|"clienteling-interaction-recorded"| in_progress
in_progress -->|"clienteling-interaction-recorded"| completed
confirmed -->|"clienteling-interaction-recorded"| no_show
confirmed -->|"clienteling-session-created"| cancelled
confirmed -->|"clienteling-session-created"| cancelled
%% ── class assignments ───────────────────────────
class requested stInit
class confirmed,in_progress stNorm
class completed stOk
class no_show,cancelled stFail
States¶
| State | Label | Description | Initial | Terminal |
|---|---|---|---|---|
requested |
Requested | Customer requested an appointment. Slot not yet confirmed by store. | ✓ | |
confirmed |
Confirmed | Store confirmed the appointment. Associate assigned. Reminder sent. | ||
in-progress |
In Progress | Customer checked in. Associate-led session underway. | ||
completed |
Completed | Session concluded successfully. Interaction notes recorded. Follow-up optional. | ✓ | |
no-show |
No Show | Customer did not attend. Slot released. Possible follow-up outreach. | ✓ | |
cancelled |
Cancelled | Appointment cancelled by customer or store before the scheduled time. | ✓ |
Transitions¶
| From | To | Trigger | Guards |
|---|---|---|---|
requested |
confirmed |
clienteling-session-created |
Slot available; Associate available; Customer identity verified |
requested |
cancelled |
clienteling-session-created |
No suitable slot available; Store rejects request |
confirmed |
in-progress |
clienteling-interaction-recorded |
Customer checked in at store; Associate starts session |
in-progress |
completed |
clienteling-interaction-recorded |
Session concluded; Interaction notes saved; Any basket or order created linked to session |
confirmed |
no-show |
clienteling-interaction-recorded |
Appointment time passed without customer check-in |
confirmed |
cancelled |
clienteling-session-created |
Cancellation within allowed window |
confirmed |
cancelled |
clienteling-session-created |
Store cancels (associate unavailable, store closure) |