Feature #1397
是由 陳國瑋 於 3 天 前更新
## 目標
依 2026-07-29 完成審查的 DriverState/公私樁/離峰充電需求,重構 Branch/HQ API 與 LIFF 的端到端狀態契約,修復 raw OCPP status、排隊、長期離峰模式與實際車主操作語意不一致的問題。
## 核心範圍
- PUBLIC/PRIVATE Connector 行為差異。
- 手動充電與長期離峰充電。
- OFF_PEAK_WAITING/QUEUED/PREPARING/CHARGING/FINISHING 等車主狀態。
- Semantic actions 與 Command API authoritative guard。
- RemoteStart/RemoteStop operation 持久化及服務重啟還原。
- Current off-peak window suppression。
- WebSocket initial snapshot、斷線與 stale action 防護。
- Branch 提供完整 API contract,HQ passthrough,LIFF 依契約實作。
## 規格附件
本 ticket 應附上兩份內容對等的規格:
1. `redmine-1397-driver-state-offpeak-requirements-rev-20260731.md`(英文修訂版,附件 #1102) `redmine-1382-driver-state-offpeak-requirements.md`(英文版)
2. `redmine-1397-driver-state-offpeak-requirements-zh-TW-rev-20260731.md`(繁體中文修訂版,附件 #1103) `redmine-1382-driver-state-offpeak-requirements-zh-TW.md`(繁體中文版)
附件為本主 ticket 與兩張子 ticket 的共同需求基準;實作若需改變產品行為,應先回到主 ticket 更新規格。
## 子任務
- Backend:Branch/HQ API、schema、scheduler、OCPP operation、授權與測試。
- Frontend:LIFF DriverState/actions、off-peak switch、WebSocket-only detail 與 modal/斷線行為。
## 不在本 ticket
- Charge Group 刪除 guard:#1395。
- PUBLIC slot 設定 guard 與 runtime `slots==0` 防線:#1396。
## 完成條件
- BE 與 FE 子 ticket 均完成各自測試與交付。
- API contract、OpenAPI types、WebSocket payload 與畫面行為一致。
- 規格列出的 P0/P1 regression 與適用 E2E cases 通過。
- 主 ticket 完成跨服務驗收後才可結案。
返回