4.8 KiB
4.8 KiB
Sprint 6 Phase 3 Announcement Review
1. Summary
เพิ่ม Announcement Module ครบทั้งฝั่ง HRD และ Employee โดยเชื่อมกับ Auth.js, Drizzle, Notification Service และ Audit Log Service ตาม architecture เดิมของระบบ
2. Files Changed
src/app/api/announcements/route.tssrc/app/api/announcements/[id]/route.tssrc/app/dashboard/announcements/page.tsxsrc/app/dashboard/announcements/[id]/page.tsxsrc/features/announcements/api/types.tssrc/features/announcements/api/service.tssrc/features/announcements/api/queries.tssrc/features/announcements/api/mutations.tssrc/features/announcements/schemas/announcement.tssrc/features/announcements/server/announcement-data.tssrc/features/announcements/components/announcements-listing.tsxsrc/features/announcements/components/announcements-page.tsxsrc/features/announcements/components/announcement-view-page.tsxsrc/features/announcements/components/announcement-form.tsxsrc/features/audit-logs/server/audit-service.tssrc/features/audit-logs/constants/audit-log-options.tssrc/features/notifications/server/notification-data.tssrc/lib/announcement-storage.tssrc/lib/searchparams.tssrc/proxy.ts
3. Database Changes
ไม่มีการเปลี่ยน schema และไม่มี migration เพิ่ม ใช้งานตาราง announcements ที่มีอยู่แล้ว
4. Routes Added
GET /api/announcementsPOST /api/announcementsGET /api/announcements/[id]PATCH /api/announcements/[id]/dashboard/announcements/dashboard/announcements/[id]
5. Notification Integration
- เมื่อประกาศถูกเผยแพร่ ระบบจะเรียก
createAnnouncementNotification() - Notification เก็บ
referenceType = announcementและreferenceId = announcement.id - ปรับปลายทาง notification ให้เปิดไปยังหน้ารายละเอียดประกาศโดยตรง
6. Audit Events Added
ANNOUNCEMENT_CREATEANNOUNCEMENT_UPDATEANNOUNCEMENT_PUBLISHANNOUNCEMENT_ARCHIVE
7. Permission Rules
- HRD: สร้าง แก้ไข เผยแพร่ ปักหมุด และเก็บถาวรได้
- Employee: ดูได้เฉพาะประกาศที่
publishedและอยู่ในช่วงวันที่อนุญาตให้แสดง - การบังคับสิทธิ์ทำที่ server route
8. Responsive Notes
- หน้า list ใช้ card layout รองรับ mobile และ tablet
- filter bar ยุบเป็นแนวตั้งบนจอเล็ก
- action buttons และ pagination รองรับการใช้งานบนหน้าจอแคบ
9. Thai Localization Notes
- ข้อความหลักในหน้า list, detail, form, loading, empty, error และ toast เป็นภาษาไทย
10. Manual Test Checklist
- HRD เปิด
/dashboard/announcementsแล้วเห็นรายการทั้งหมด - HRD สร้างประกาศแบบ draft ได้
- HRD สร้างประกาศแบบ published ได้และเกิด notification
- HRD แก้ไขประกาศและแทนที่ไฟล์แนบได้
- HRD ปักหมุดและยกเลิกปักหมุดได้
- HRD เก็บถาวรประกาศได้
- Employee เห็นเฉพาะประกาศที่เผยแพร่แล้ว
- Employee เปิด notification แล้วเข้าหน้ารายละเอียดประกาศได้
- ค้นหา กรอง และเปลี่ยนหน้าใน announcement list ได้
11. Known Limitations
- ยังไม่มี rich text editor สำหรับ content
- attachment upload ใช้ local file storage ตามแนวทางเดียวกับ certificate
- ยังไม่มี route ยกเลิกเผยแพร่ถาวร เพราะ requirement ไม่ได้ระบุ
12. Next Phase Recommendation
- เพิ่ม announcement analytics เช่นยอดอ่านหรือ acknowledgement
- เพิ่ม scheduling UX สำหรับประกาศที่จะเผยแพร่ล่วงหน้า
- พิจารณาเพิ่ม editor ที่รองรับรูปแบบข้อความ หากมี requirement ด้าน communication มากขึ้น