Trạng thái và quy tắc chuyển bước
State machines theo từng trục nghiệp vụ và business rules (BR) — invariant triển khai enforce phía server.
1. Các trục trạng thái
Mỗi thực thể có vòng đời riêng nên tách state machine theo trục (account, cart, order, payment, shipment, content, …) thay vì một cột status cố gánh mọi sự kiện. Register: data/states.yaml.
| Trục | Các trạng thái chính |
|---|---|
| Ví dụ trục — thay bằng trục trạng thái thật | State A → State B → State C; nhánh Exception / Cancelled. Ghi rõ điều kiện chuyển bước nhạy cảm (ai được chuyển, khi nào). |
Ghi chú chung về state machine (ví dụ: chuyển state bằng API/server rule và audit ở action nhạy cảm).
Các transition nhạy cảm phải fail-closed:
- chuyển state bằng API/server rule, không dựa vào ẩn nút UI;
- action nhạy cảm phải audit actor/time/action/target/reason;
- state không được tự sinh từ hệ thống ngoài khi chưa có integration được chốt.
2. Business rules (BR)
Các rule dưới đây là invariant triển khai, không phải gợi ý UI. Register: data/br.yaml.
| Quy tắc | Điều kiện chuyển bước |
|---|---|
BR-00 — [VÍ DỤ] Thay bằng business rule thật | Invariant triển khai: điều kiện phải đúng trên mọi đường thực thi, enforce phía server/API, không phụ thuộc ẩn nút UI. |
3. Negative-path bắt buộc
- TODO: negative path 1
- TODO: negative path 2