Announcement: PRD
Domain Communications · function
announcement· mã storyCOMM-ANN· SDD · TestsHiện trạng: một nửa. Đường đọc công khai có; đường soạn không có trong repo.
Mục tiêu
Nhà trường đăng một thông báo có thời hạn (lịch nghỉ, thay đổi chính sách, lớp mới mở) và người đọc thấy nó ở đúng nơi, đúng phạm vi.
User story
COMM-ANN-01: khách đọc danh sách thông báo
Là khách, tôi muốn xem các thông báo đã đăng của trường, lọc theo danh mục, để biết tin chính thức.
- Given có thông báo
statusđã đăng và chưa hết hạn When mởwww.conan.school/announcementsThen thấy danh sách phân trang, lọc được theo danh mục; thông báo ghim đứng đầu.
COMM-ANN-02: đọc một thông báo
- Given một thông báo đã đăng When mở
/announcements/:slugThen thấy nội dung đầy đủ; slug không có thật thì 404, không phải trang rỗng "đang cập nhật".
COMM-ANN-03: lỗi không biến thành "chưa có gì"
- Given API thông báo trả 500 When www dựng trang Then trang báo lỗi, không hiện danh sách rỗng (luật
catchcủa SEO).
COMM-ANN-04: người vận hành soạn và lên lịch thông báo
Là người vận hành, tôi muốn soạn, xem trước, đặt ngày đăng và ngày hết hạn cho thông báo trong admin, để không phải nhờ người chèn D1.
- Given tôi soạn một thông báo nháp When đặt
published_attrong tương lai Then nó chỉ hiện từ thời điểm đó và tự ẩn sauexpires_at.
COMM-ANN-05: thông báo theo lớp
Là học viên một lớp, tôi muốn thấy thông báo riêng của lớp mình, để không lẫn với tin chung.
- Given thông báo có
scopelớp vàclass_idWhen tôi không thuộc lớp đó Then tôi không thấy nó.
COMM-ANN-06: thông báo quan trọng tới tận người
Là người vận hành, tôi muốn một thông báo ưu tiên cao được đẩy thêm qua email hoặc in-app, để người không vào trang vẫn biết. Phụ thuộc segment và in-app.