# Prompt.md — Permission Matrix UX Improvement & Permission Catalog Description ## Objective ปรับปรุงหน้า **Permission Matrix** ให้ผู้ใช้งานสามารถเข้าใจ Permission แต่ละรายการได้ง่ายขึ้น โดยเพิ่มคำอธิบายภาษาไทย (Description) ให้กับทุก Permission รอบนี้เป็นการปรับปรุงเฉพาะ **UI/UX และ Permission Catalog** **ห้ามเปลี่ยน Business Logic** **ห้ามเปลี่ยน Permission Code** **ห้ามเปลี่ยน Authorization** **ห้ามเปลี่ยน Database Schema** --- # Required Reading ก่อนเริ่ม Coding ให้อ่าน - docs/PROJECT_ARCHITECTURE.md - docs/AI_DEVELOPMENT_GUIDE.md - AGENTS.md และตรวจสอบ implementation ของ ``` src/features/permission-management ``` รวมถึง Permission Catalog ที่ใช้งานอยู่ ห้ามสร้าง Catalog ใหม่ ห้ามสร้างข้อมูลซ้ำ --- # Objective Detail Permission Matrix ต้องสามารถอธิบายว่า Permission แต่ละรายการ "ใช้ทำอะไร" โดยใช้ข้อความภาษาไทยสั้น ๆ เพื่อให้ - Super Admin - HRD Manager - System Administrator - IT Administrator สามารถเข้าใจได้ทันที --- # Current UI ปัจจุบัน ``` Manage organization:manage ``` ซึ่งผู้ใช้งานทั่วไปไม่ทราบว่า Manage คืออะไร --- # Expected UI ปรับเป็น ``` Manage จัดการข้อมูลองค์กร เช่น สร้าง แก้ไข ตั้งค่า เปิดหรือปิดการใช้งานองค์กร organization:manage [Action] ``` --- # UI Layout ภายในการ์ดแต่ละ Permission ให้เรียงลำดับดังนี้ 1. Permission Name เช่น ``` Manage ``` 2. Description เช่น ``` จัดการข้อมูลองค์กร เช่น สร้าง แก้ไข ตั้งค่า เปิดหรือปิดการใช้งานองค์กร ``` 3. Permission Code ``` organization:manage ``` 4. Action Badge ``` Action ``` --- # Typography ## Permission Name - font-semibold - text-base หรือ text-lg --- ## Description - text-sm - text-muted-foreground - รองรับหลายบรรทัด - line-clamp ได้หากจำเป็น --- ## Permission Code - font-mono - text-xs - text-muted-foreground --- ## Badge ใช้ Component เดิมของระบบ --- # Permission Catalog Enhancement ปรับปรุง Permission Catalog ทุก Permission ต้องมีข้อมูลดังนี้ ```ts export interface PermissionDefinition { module: string; action: string; code: string; name: string; description: string; descriptionEn?: string; } ``` โดย description เป็นคำอธิบายภาษาไทย descriptionEn สงวนไว้สำหรับอนาคต --- # Data Structure ตัวอย่าง ```ts { module: "Organizations", action: "Manage", code: "organization:manage", name: "Manage", description: "จัดการข้อมูลองค์กร เช่น สร้าง แก้ไข ตั้งค่า เปิดหรือปิดการใช้งานองค์กร" } ``` อีกตัวอย่าง ```ts { module: "Announcements", action: "Publish", code: "announcement:publish", name: "Publish", description: "เผยแพร่ประกาศให้ผู้ใช้งานสามารถมองเห็นได้" } ``` --- # Component Rules Component ห้าม Hardcode ข้อความภาษาไทย ต้องอ่านจาก ``` permission.description ``` เท่านั้น เช่น ```tsx

{permission.name}

{permission.description}

{permission.code} ``` เพื่อรองรับ - Multi-language - Tooltip - API Documentation - Permission Detail - Future UI --- # Description Guidelines คำอธิบายต้อง - เป็นภาษาไทย - อ่านเข้าใจง่าย - ไม่ยาวเกินไป - อธิบายการใช้งานจริง - ไม่อธิบายชื่อ Permission ซ้ำ ตัวอย่างที่ดี ``` สามารถสร้างประกาศใหม่ได้ ``` ไม่ใช่ ``` Permission สำหรับ Create Announcement ``` --- # Permission Description ## Organizations ### Manage จัดการข้อมูลองค์กร เช่น สร้าง แก้ไข ตั้งค่า เปิดหรือปิดการใช้งานองค์กร --- ### Switch สลับองค์กรที่กำลังใช้งาน สำหรับผู้ใช้ที่มีสิทธิ์หลายองค์กร --- ## Permission Templates ### Read ดูรายการ Permission Template ทั้งหมด --- ### Create สร้าง Permission Template ใหม่ --- ### Update แก้ไข Permission Template --- ### Clone คัดลอก Permission Template เพื่อสร้างชุดสิทธิ์ใหม่ --- ### Delete ปิดการใช้งานหรือ Soft Delete Permission Template --- ### Assign กำหนด Permission Template ให้ผู้ใช้งาน --- ## User Permissions ### Read ดูสิทธิ์ของผู้ใช้งาน --- ### Update แก้ไขชุดสิทธิ์ของผู้ใช้งาน --- ### Override เพิ่มหรือลดสิทธิ์เฉพาะบุคคล โดยไม่กระทบ Template หลัก --- ## Dashboard ### View ดู Dashboard และข้อมูลสรุปของระบบ --- ## Announcements ### View ดูประกาศ ### Create สร้างประกาศใหม่ ### Update แก้ไขประกาศ ### Delete ยกเลิกเผยแพร่ ### Approve อนุมัติประกาศก่อนเผยแพร่ ### Publish เผยแพร่ประกาศให้ผู้ใช้งานเห็น ### Export ส่งออกข้อมูลประกาศ --- ## Online Lessons ### View ดูบทเรียนออนไลน์ ### Create สร้างบทเรียนออนไลน์ ### Update แก้ไขบทเรียนออนไลน์ ### Delete ลบบทเรียนออนไลน์ ### Approve อนุมัติบทเรียนออนไลน์ ### Publish เผยแพร่บทเรียนออนไลน์ --- ## Training Records ### View ดูประวัติการอบรม ### Create สร้างประวัติการอบรม ### Update แก้ไขประวัติการอบรม ### Delete ลบประวัติการอบรม ### Approve อนุมัติประวัติการอบรม ### Export ส่งออกข้อมูลประวัติการอบรม --- ## Reports ### View ดูรายงาน ### Export ส่งออกรายงานเป็น Excel หรือ PDF --- ## Audit Logs ### View ดูประวัติการใช้งานระบบ ### Export ส่งออกประวัติการใช้งานระบบ --- ## Settings ### View ดูหน้าการตั้งค่าระบบ ### Update แก้ไขการตั้งค่าระบบ --- ## Permission Management ### View ดูหน้าจัดการ Permission ### Create สร้าง Permission Template ### Update แก้ไข Permission Template ### Delete ลบหรือปิดการใช้งาน Permission Template ### Assign กำหนด Permission ให้ผู้ใช้งาน ### Override เพิ่มหรือลดสิทธิ์เฉพาะบุคคล ### Manage จัดการระบบ Permission ทั้งหมด --- # Reuse ห้ามสร้าง Permission Catalog ขึ้นใหม่ ให้เพิ่มเฉพาะ ``` description ``` และ ``` descriptionEn ``` เข้าไปใน Catalog เดิม --- # Future Ready Component ต้องรองรับ ``` permission.description permission.descriptionEn ``` โดยไม่ต้องแก้ไขอีกในอนาคต --- # Do Not ห้าม - เปลี่ยน Permission Code - เปลี่ยน Module - เปลี่ยน Action - เปลี่ยน Permission Group - เปลี่ยน Authorization - เปลี่ยน API - เปลี่ยน Database - เปลี่ยน Business Logic รอบนี้เป็น UX Improvement เท่านั้น --- # Deliverables เมื่อดำเนินการเสร็จ ให้สร้างรายงาน ``` docs/permission-matrix-ui-improvement-report.md ``` ประกอบด้วย ## 1. Summary สิ่งที่ปรับปรุง --- ## 2. Files Modified ไฟล์ที่แก้ไขทั้งหมด --- ## 3. UI Changes รายละเอียดการเปลี่ยนแปลงของ Permission Matrix --- ## 4. Permission Catalog Changes สรุปการเพิ่ม - description - descriptionEn --- ## 5. Permission Coverage รายงานจำนวน Permission ทั้งหมด พร้อมยืนยันว่า ทุก Permission มี - module - action - code - name - description ครบถ้วน --- ## 6. Compatibility ยืนยันว่า - Permission Code ไม่เปลี่ยน - Business Logic ไม่เปลี่ยน - Authorization ไม่เปลี่ยน - API ไม่เปลี่ยน - Database ไม่เปลี่ยน --- ## 7. Verification ตรวจสอบ - TypeScript ผ่าน - Lint ผ่าน - Permission Matrix แสดง Description ถูกต้อง - Permission Code ยังคงเดิม - ทุก Permission มี Description ครบถ้วน