Channel adapters: PRD
Domain Notifications · function
channel-adapters· mã storyNOTIF-CH· SDD · TestsHiện trạng: chưa xây như một tầng. Có đúng một kênh, email, gọi thẳng.
Mục tiêu
Một sự kiện nghiệp vụ được đưa tới người nhận qua một hay nhiều kênh (email, in-app, có thể Zalo hay push sau này) mà mã domain không phải biết kênh nào đang bật.
User story
NOTIF-CH-01: một cổng, nhiều kênh
Là kỹ sư, tôi muốn gọi một hàm notify(kind, userId, data) và để tầng kênh quyết định gửi qua đâu, để thêm kênh mới không phải sửa mọi chỗ gọi.
- Given loại
event_reminderbật cho email và in-app When domain gọi cổng Then mỗi kênh nhận đúng một tin, mỗi tin một dòng ở sổ gửi.
NOTIF-CH-02: nhà cung cấp email duy nhất là Cloudflare Email Service
- Given ai đó đề nghị thêm Resend, SendGrid hay SMTP When rà PR Then từ chối (LUẬT EMAIL). Adapter email chỉ bọc binding
EMAIL.
NOTIF-CH-03: một kênh hỏng không chặn kênh khác
- Given email trả lỗi When tin cũng bật cho in-app Then in-app vẫn ghi; lỗi email được ghi sổ, không ném ra domain.
NOTIF-CH-04: kênh của thương hiệu bên thứ ba
- Given một kênh như Zalo When cần màu hay biểu tượng nhận diện Then dùng token
--color-vendor-*, không rải hex (LUẬT MÀU).