# Prompt.md — Role & Permission Management (Coding Phase 1) ## Objective เริ่มพัฒนาระบบ **Role & Permission Management** ตามแผนใน `docs/role-permission-management-plan.md` โดยยึดตามเอกสารนี้เป็นหลัก และ **ห้ามเพิ่ม Requirement ใหม่เอง** --- # Required Reading ก่อนเริ่ม Coding ต้องอ่านเอกสารต่อไปนี้ - `docs/PROJECT_ARCHITECTURE.md` - `docs/AI_DEVELOPMENT_GUIDE.md` - `AGENTS.md` - `docs/role-permission-management-plan.md` จากนั้นตรวจสอบโครงสร้างของโปรเจกต์จริงก่อนลงมือแก้ไข ห้ามเดาโครงสร้าง ต้อง Reuse Shared Components และ Shared Patterns ที่มีอยู่ --- # Coding Scope ใน Phase นี้ ให้เริ่มสร้างโครงสร้างของ Feature Role & Permission Management โดย **ยังไม่ต้องย้าย Feature อื่นมาใช้ Permission-first** ยังไม่ต้องแก้ไขระบบ Authorization ของระบบเดิม ยังไม่ต้องลบ Compatibility Mode --- # Features to Implement ## 1. Permission Management Feature Module สร้าง Feature ใหม่ ```text src/features/permission-management/ ``` โดยจัดโครงสร้างให้สอดคล้องกับ Feature อื่นของโปรเจกต์ ตัวอย่าง ```text api/ components/ schemas/ server/ hooks/ types/ ``` ต้อง Reuse pattern เดิมของโปรเจกต์ --- ## 2. Permission Template Management สร้างหน้าจอ ```text /dashboard/permissions/templates ``` รองรับ - แสดงรายการ Permission Template - Search - Pagination - Sorting - Status Badge - Assigned User Count - Create - Edit - Clone - Activate - Deactivate - Soft Delete ใช้ - DataTable - Sheet - Dialog - AlertDialog จาก Shared Components --- ## 3. Permission Matrix สร้างหน้า ```text /dashboard/permissions/matrix ``` รองรับ Grouped Permission เช่น Dashboard Training Records Announcements Online Lessons Employees Reports Settings Permission Management แต่ละ Module มี Action - View - Create - Edit - Delete - Approve - Publish - Export - Manage ใช้รูปแบบ Checklist --- ## 4. User Permission Assignment สร้างหน้า ```text /dashboard/permissions/users ``` รองรับ - Search User - แสดงข้อมูลพนักงาน - Assign Template (1 Template ต่อ User) - Extra Permission - Deny Permission - Effective Permission Preview - Save Assignment ต้องใช้ Transaction ฝั่ง Server --- ## 5. Permission Audit Logs สร้างหน้า ```text /dashboard/permissions/audit-logs ``` Reuse Audit Log Listing เดิม เพิ่มเฉพาะ Data Source และ Filter --- # API สร้าง Route Handlers ตามแผน Permission Templates ```text GET POST PATCH DELETE Clone Activate Deactivate ``` Permission Assignment ```text GET PUT POST Override PATCH Override DELETE Override ``` Permission Catalog ```text GET ``` Permission Audit Logs ```text GET ``` --- # Validation ใช้ Zod ทุก Request ทุก Mutation ทุก Form ห้ามใช้ Manual Validation --- # UI ใช้ Shared UI เดิมทั้งหมด เช่น - Button - Badge - Dialog - Sheet - AlertDialog - TanStack Table - TanStack Query - TanStack Form ห้ามสร้าง UI Component ซ้ำ --- # Authorization หน้าทั้งหมด API ทุกตัว ต้องใช้ Super Admin เท่านั้น ห้ามใช้ HRD IT Manager Employee เข้าถึงได้ --- # Database ใช้ Schema ปัจจุบัน ห้ามแก้ Migration ห้ามสร้าง Migration ใหม่ หากพบจุดที่ Schema ยังไม่รองรับ ให้เขียน TODO พร้อม Comment และสรุปไว้ใน Report --- # Compatibility ต้องไม่ทำให้ Business Role เสียหาย ต้องไม่ลบ - isHRD() - isIT() - businessRole ต้องไม่เปลี่ยน Navigation ของระบบเดิม ยกเว้นเพิ่มเมนูใหม่ของ Permission Management --- # Navigation เพิ่มเมนูใหม่ ```text Permission Management ``` ภายในมี - Permission Templates - Permission Matrix - User Permissions - Permission Audit Logs เมนูนี้ Super Admin เท่านั้นที่มองเห็น --- # Coding Rules - Reuse Existing Pattern - TypeScript Strict - No Any - No Dead Code - No Duplicate Logic - Reuse Query Pattern - Reuse Mutation Pattern - Reuse DataTable Pattern - Reuse Sheet Pattern - Reuse Form Pattern --- # Files Expected สร้างตามโครงสร้างที่ระบุใน `docs/role-permission-management-plan.md` หากมีไฟล์ใดต้องเปลี่ยน ให้แก้เฉพาะเท่าที่จำเป็น --- # Deliverables เมื่อ Coding เสร็จแล้ว ให้สร้าง Report ```text docs/role-permission-management-implementation-report.md ``` ภายในประกอบด้วย ## 1. Summary สิ่งที่พัฒนาแล้ว --- ## 2. Files Created ไฟล์ใหม่ทั้งหมด --- ## 3. Files Modified ไฟล์ที่แก้ไข --- ## 4. API Implemented Route ทั้งหมด --- ## 5. UI Pages หน้าที่สร้าง --- ## 6. Remaining TODO สิ่งที่ยังไม่ได้ทำ --- ## 7. Known Limitations ข้อจำกัด --- ## 8. Compatibility Status สิ่งที่ยังใช้ Compatibility Mode --- ## Important Rules - ห้ามแก้ Requirement - ห้ามเพิ่ม Feature ใหม่ - ห้าม Refactor ส่วนอื่นของระบบ - ห้ามลบระบบเดิม - ต้องทำเฉพาะตามขอบเขตของ `docs/role-permission-management-plan.md` - หากพบปัญหา ให้ใช้ TODO และบันทึกไว้ใน Report แทนการเปลี่ยน Architecture เอง