Catalog: PRD
Domain Notifications · function
catalog· mã storyNOTIF-CAT· SDD · Tests
Mục tiêu
Mọi loại tin hệ gửi ra được khai ở một chỗ, với tên, lúc gửi, mục đích, dữ liệu mẫu và cách dựng. Không loại tin nào được gửi nếu không có trong danh mục.
User story
NOTIF-CAT-01: một danh mục duy nhất
Là kỹ sư, tôi muốn thêm loại email mới bằng cách thêm một mục vào danh mục, để không có HTML email rời rạc ở chỗ gọi.
- Given một loại email mới When gọi
sendEmail()vớikindchưa khai Then TypeScript từ chối (EmailKindlà union đóng).
NOTIF-CAT-02: người vận hành xem toàn bộ danh mục
Là người vận hành, tôi muốn xem mọi loại email, lúc nào gửi, có bản sao kiểm tra hay không, để biết hệ đang nói gì với người học.
- Given tôi mở admin
/community/email/catalogWhen trang tải Then thấy mọi loại trong danh mục; cột "có bản sao" khớp đúng hàmauditCopyAppliesTo()của máy chủ. - Given bản sao đang đi chung thư (
EMAIL_AUDIT_COPY.mode = 'cc'từ 08.09.2026) When trang hiện cột lượt mở 30 ngày Then loại có bản sao mà có thư được mở ghi "có lẫn lượt mở của người vận hành" (cờoperator_openstừ API), và khung "Bản sao kiểm tra" nêu ba hệ quả: địa chỉ hiện với người nhận (chỉ ở'cc';'bcc'không lộ địa chỉ), chung ảnh theo dõi, không có dòng bản sao riêng.
NOTIF-CAT-03: mọi loại dựng được bằng dữ liệu mẫu, không lộ giá trị rỗng
- Given mỗi mục có
sampleWhen render Then không chứaundefined,null,NaN; tiêu đề dự phòng (không tên) hợp lệ.
NOTIF-CAT-04: phân loại giao dịch và gắn kết
- Given một loại email When khai vào danh mục Then nó thuộc đúng một trong hai nhóm; mặc định là giao dịch, nhóm gắn kết phải khai vào
ENGAGEMENT_KINDS.
NOTIF-CAT-05: liên kết trong thư trỏ tới route có thật
- Given một nút trong thư trỏ tới tokyo When kiểm danh mục Then đường dẫn khớp một route trong router của tokyo (SPA trả 200 cho mọi đường nên
curlkhông đủ).
NOTIF-CAT-06: gửi thử toàn danh mục
Là người vận hành, tôi muốn gửi thử mọi loại tới hộp thư của tôi, để xem tận mắt trước khi đổi khung.
- Given token gửi thử hợp lệ When
POST /api/system/email/smokeThen nhận tối đa 10 thư mẫu; cùng địa chỉ chỉ một lượt mỗi 10 phút.