Object Lifecycle
State Machine Diagram
嚴格遵循 UML 狀態轉移規範,標示各物件狀態之轉換事件與條件 (Guard Conditions)。
stateDiagram-v2
[*] --> Available
Available --> Locked : 主揪預約 [時段空閒]
state "Locked" as Locked {
[*] --> 倒數計時
}
Locked --> Available : 取消或逾時 [未結帳]
Locked --> Booked : 確認付款 [結帳成功]
Booked --> Available : 取消球局
Booked --> [*] : 時段結束
stateDiagram-v2
[*] --> Pending : 發送申請
Pending --> Rejected : 主揪拒絕
Rejected --> [*]
Pending --> Approved : 主揪同意
state "Approved" as Approved
Approved --> Completed : 正常參與結束
Completed --> [*]
Approved --> Exit_Check : 點擊退出
%% 正規的 UML 決策節點 (Decision Node)
state Exit_Check <>
Exit_Check --> Normal_Exit : [尚未逾時]
Normal_Exit --> [*]
Exit_Check --> Paid_Absent : [已逾時且同意付費]
Paid_Absent --> [*]
Exit_Check --> Malicious_Dropout : [已逾時且拒絕付費]
Malicious_Dropout --> Penalty : 觸發扣分
Penalty --> [*]