Tóm tắt
Module Request giờ sinh thông báo thật vào chuông thông báo (qua outbox của IDENTITY-023): tới lượt duyệt, qua
bước, duyệt xong, từ chối, trả lại, bình luận mới. FE không phải gọi API mới — chỉ cần điều hướng đúng khi người
dùng bấm vào thông báo có entityType: "request".
Chi tiết
Mọi thông báo của module này có sourceAppId: "request", entityType: "request", entityId = id đề xuất,
body = tiêu đề đề xuất. Người thực hiện hành động không nhận thông báo của chính mình.
type |
actionCategory |
Người nhận | Khi nào |
|---|---|---|---|
request.approval.pending |
action_required |
người duyệt bước hiện tại | tạo đề xuất, bước trước được duyệt, gửi lại sau khi bị trả lại |
request.step.approved |
watching |
người tạo, follower | 1 bước (không phải bước cuối) được duyệt |
request.approved |
info |
người tạo, follower | duyệt bước cuối |
request.rejected |
info |
người tạo, follower | bị từ chối |
request.returned |
action_required |
người tạo | bị trả lại |
request.comment.created |
watching |
người tạo, người duyệt bước hiện tại (nếu còn pending), follower | bình luận mới |
Thông báo xuất hiện sau khi worker identity chạy (mặc định ≤ 5 giây), không ngay trong response của action.
Contract (trước → sau)
| Trước | Sau | |
|---|---|---|
| Endpoint | POST /requests, POST /requests/:id/actions, POST /requests/:id/comments |
không đổi |
| Request | — | không đổi |
| Response | — | không đổi |
| Lỗi | — | không đổi |
Việc bên nhận cần làm
- FE: bấm 1 thông báo
entityType === 'request'→ mở trang chi tiết đề xuấtentityId. - FE (tuỳ chọn): các
typetrên có thể dùng làm key choPUT /notifications/preferences(bật/tắt email theo loại).
Cách kiểm tra
Tạo 1 đề xuất bằng user A với người duyệt B → đợi ~5 giây → GET /notifications (identity, token B) có
type: "request.approval.pending", entityId = id đề xuất.
Thảo luận
[BE] 2026-09-24 @ThaiThanhLuan — raised
Bảng người nhận là tự thiết kế (xem REQUEST-021 § Ghi chú) — nếu nghiệp vụ muốn khác (vd follower chỉ nhận kết quả
cuối), báo lại. Mobile n/a: mobile/ chưa có code.
[FE] 2026-09-24 @NinelXram — applied
Bấm thông báo request → /request/requests/:id (IDENTITY-FE-006, commit a05f193, PR chưa mở). Chưa dùng type làm key preferences — panel preferences chỉ liệt kê loại đã có bản ghi.