Skip to content

Complaint Case Lifecycle Deep Dive

Bộ tài liệu này đào sâu flow complaint-case-lifecycle theo code thực tế hiện tại. Đây là package reverse-engineer trong docs/modules, không phải PRD/spec delivery. Mục tiêu là chốt một mental model rõ ràng cho 4 lớp rất dễ bị lẫn:

  • complaint create ở FE đang đi thẳng qua insert Hasura, không có action create riêng,
  • backend actions mới là lifecycle engine thật cho resolve, approve, reject và supplement,
  • quyền thao tác phụ thuộc đồng thời vào branch permission tables và full-view/full-permission roles,
  • timeline/audit sống ở complaint_schedule_history, không chỉ là dữ liệu phụ của dialog detail.

Đọc file nào?

Bạn là ai?Nên đọc trướcMục tiêu
PO / BAshared-rules.mdChốt thuật ngữ, status matrix, role boundary, invariant
FE Devtype-complaint-lifecycle-and-status.md, type-timeline-notification-and-role-boundary.mdHiểu dialog shell, create path, step bar, action role
BE Devtype-supplement-approval-and-resolution.md, shared-rules.mdHiểu transition actions, permission guard, history contract
QAshared-rules.md, type-supplement-approval-and-resolution.mdThiết kế test theo state machine, role matrix, bug permission
Người mới vào hệ thốngmodule-overview.mdCó bản đồ tổng trước khi đi sâu

Files

FileVai trò
module-overview.mdBản đồ tổng: route families, state machine, backend boundary, permission model
shared-rules.mdThuật ngữ chuẩn, status/history matrix, actor matrix, invariants
type-complaint-lifecycle-and-status.mdDeep dive cho create/list/detail, step mapping và action role
type-supplement-approval-and-resolution.mdDeep dive cho resolve, request supplement, supplement, approve, reject
type-timeline-notification-and-role-boundary.mdDeep dive cho timeline, branch permission, full-view roles và boundary liên module

Kết luận ngắn

  1. Complaint workflow là state machine nhỏ nhưng chặt, không phải CRUD dialog đơn thuần.
  2. FE create path đang bypass backend action layer; lifecycle chỉ bắt đầu thật từ các action resolve/approve/reject/supplement.
  3. complaint_action_role là contract quan trọng nhất giữa detail FE và backend permission engine.
  4. Có drift thật ở permission guard: nhiều action backend đang yêu cầu vừa có branch permission vừa có full-permission role, trái với detail logic và có khả năng chặn user hợp lệ.

Liên kết tài liệu liên quan

Phạm vi của bộ docs này

  • Bám theo code hiện tại của diva-admin, ecommerce-api, Hasura metadata và các table domain ecommerce.
  • Ưu tiên mô tả hệ thống đang chạy như thế nào thay vì flow lý tưởng.
  • Chủ động ghi các drift hoặc dấu hiệu bug ở FE, backend, metadata và permission runtime.