Skip to content

Projects Task Lifecycle And Tour Income Deep Dive

Bộ tài liệu này đào sâu flow projects-task-lifecycle-and-tour-income theo code thực tế hiện tại. Đây là package reverse-engineer trong docs/modules, không phải PRD/spec delivery. Batch này được làm theo hướng audit sâu vì module projects có dấu hiệu drift và lỗi runtime nhiều hơn mức bình thường:

  • route tree và navigation đang lẫn giữa task_management với một entry Hoàn Tiền không cùng domain (diva-admin/src/modules/projects/module.ts:223),
  • FE helper/constant có lỗi logic thật ở assignee mapping và naming (diva-admin/src/modules/projects/compositions/useTaskHelper.ts:108, diva-admin/src/modules/projects/components/TaskForm/index.tsx:577, diva-admin/src/modules/projects/types.ts:64),
  • backend event project_task_insertproject_task_update_1 chứa ít nhất 2 bug có khả năng làm sai dữ liệu commission và customer visit (diva-backend/services/ecommerce-api/event/project_task_insert.go:223, diva-backend/services/ecommerce-api/event/project_task_update_1.go:236),
  • scheduler reset_task có side effect mạnh hơn nhiều so với tên gọi vì vừa reset status vừa xóa assignee (diva-backend/services/ecommerce-api/scheduler/reset_task.go:82).

Đọc file nào?

Bạn là ai?Nên đọc trướcMục tiêu
PO / BAshared-rules.mdChốt status dialect, assignee roles, scheduler side effects, ranh giới tour income
FE Devtype-project-task-lifecycle-and-assignment.mdHiểu route tree, form create/update, quick view, scope builders, bug helper
BE Devtype-tour-income-kpi-and-report-boundary.md, type-task-log-comment-file-and-status-events.mdHiểu event chain, scheduler, doctor commission, KPI/salary/customer-note coupling
QAshared-rules.md, type-tour-income-kpi-and-report-boundary.mdThiết kế test theo lifecycle, side effects, known bugs
Người mới vào hệ thốngmodule-overview.mdCó bản đồ tổng trước khi đi sâu từng runtime

Files

FileVai trò
module-overview.mdBản đồ tổng: project shell vs task runtime, event/scheduler map, findings ưu tiên cao
shared-rules.mdThuật ngữ chuẩn, status matrix, role matrix, scheduler matrix, invariants
type-project-task-lifecycle-and-assignment.mdDeep dive cho route tree, create/update/detail/quick-view, scope và permission logic
type-task-log-comment-file-and-status-events.mdDeep dive cho task log, comment notifications, file mirroring và cron side effects
type-tour-income-kpi-and-report-boundary.mdDeep dive cho tour money, doctor commission, KPI/salary/report coupling và bug runtime

Kết luận ngắn

  1. projects trên UI nhìn như project management, nhưng engine thật nằm gần như hoàn toàn ở project_task, project_task_assignee và các event/scheduler phía ecommerce-api.
  2. Module đang chạy đồng thời 2 dialect status: automate board dùng new_branch/waiting_branch/inprogress_branch/done_branch, còn personal/task views lại map qua new/reopen/inprogress/reviewing/completed/missed.
  3. tour_money không chỉ là field hiển thị. Mỗi lần đổi giá trị có thể chạm ecommerce_task_log, salary runtime, customer note metadata, KPI log và report tour limit.
  4. Có lỗi thật cần ưu tiên kiểm tra sản phẩm:
    • cancel doctor commission request đang update sai request_working_schedule.id = projectTask.ID thay vì request id/reference (project_task_insert.go:223),
    • insert all_customer_visits khi task chuyển done_branch lại dùng time.Now() thay vì taskNew.DoneAt, dễ ghi lệch ngày visit (project_task_update_1.go:242),
    • helper lấy assigner ids đang trả nhầm supporter ids (useTaskHelper.ts:115).

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 bảng domain project/ecommerce/hrm.
  • Ưu tiên mô tả hệ thống đang chạy như thế nào thay vì flow lý tưởng.
  • Chủ động ghi drift, technical debt và bug candidates nếu chúng có bằng chứng cụ thể trong source.