9.4 KiB
Prompt: Enhance Training Policy Management Module (Production Ready)
Objective
ปรับปรุง (Enhance) โมดูล Training Policy Management ของระบบ Training Management System (TMS)
งานนี้ไม่ใช่การสร้างระบบใหม่ (Rewrite)
ให้ตรวจสอบโครงสร้างเดิมของระบบก่อน และขยาย (Extend) หรือปรับปรุง (Refactor) ตามความเหมาะสม โดยคง Architecture, Coding Standard และ Business Logic ของระบบเดิมไว้ให้มากที่สุด
เป้าหมายคือยกระดับ Policy Management ให้เป็นศูนย์กลางในการกำหนดนโยบายการอบรมขององค์กร (Policy Engine) ที่สามารถรองรับการเติบโตของระบบในอนาคต
IMPORTANT
ก่อนเริ่มพัฒนา
ต้องตรวจสอบโครงสร้างเดิมทั้งหมดของระบบ เช่น
- Database
- Prisma Schema
- Models
- Services
- Repository
- API
- Server Actions
- Validation
- Shared Components
- UI Components
- Permissions
- Audit Log
- Status
- Existing Policy Module
หากพบว่าโมดูลหรือโครงสร้างเดิมสามารถรองรับ Requirement ได้
ให้
- Reuse
- Extend
- Refactor
แทนการสร้างใหม่
ห้าม Rewrite ทั้ง Module
Existing Implementation Compatibility
ให้ใช้หลัก
Reuse > Extend > Refactor > Create New
ห้าม
- Duplicate Component
- Duplicate API
- Duplicate Business Logic
- Duplicate Validation
ห้ามสร้าง
- Table ใหม่
- API ใหม่
- Component ใหม่
หากของเดิมสามารถใช้งานต่อได้
หากจำเป็นต้องสร้าง
ต้องอธิบายเหตุผล
และกระทบระบบเดิมให้น้อยที่สุด
(Minimal Impact)
Scope
พัฒนาและปรับปรุง
- Policy List
- View Policy
- Create Policy
- Edit Policy
- Clone Policy
- Archive
- Restore
- Activate
- Deactivate
- Version History
- Audit Log
Policy Concept
Policy คือชุดกฎที่ใช้กำหนดการทำงานของระบบ
เช่น
- ชั่วโมงอบรมขั้นต่ำ
- ชั่วโมง K/S/A
- Mandatory Course
- Certificate Policy
- Approval Rule
- Effective Date
- Expiration Date
ทุก Feature ในระบบควรอ้างอิง Policy
ไม่ Hardcode ค่า
Policy Fields
General
- Policy Name *
- Description
- Company
- Organization (ถ้ามี)
- Status
- Version
- Created By
- Updated By
- Created At
- Updated At
Status
รองรับ
- Draft
- Active
- Inactive
- Archived
Effective Date
- Effective From *
- Effective To
รองรับ
"No Expiration"
Training Hours
- Required Total Hours *
- Required K Hours *
- Required S Hours *
- Required A Hours *
Validation
K + S + A
ต้องเท่ากับ
Required Total
Mandatory Courses
Multi Select
ค้นหาได้
แสดง
- Course Code
- Course Name
- Category
Certificate Policy
- Certificate Required
- Validity
- Renewal Required
Advanced Settings
รองรับในอนาคต
- Auto Approve
- Allow External Training
- Allow Self Submission
- Notification Rule
Policy List
Columns
- Name
- Version
- Status
- Effective Date
- Updated By
- Updated At
- Action
Search
- Name
- Description
Filter
- Status
- Company
- Year
Sorting
- Name
- Updated
- Effective Date
- Status
Pagination
ใช้มาตรฐานเดียวกับระบบ
View Policy
Read Only
แบ่ง Section
- General
- Hours
- Mandatory Courses
- Certificate
- Advanced
- History
Create Policy
สร้างเป็น
Draft
Validation ครบ
ใช้ Required Style เดิมของระบบ
Edit Policy
แก้ไขได้
Draft
Active
Inactive
Archived
ห้ามแก้ไข
- Version
- Created By
- Created At
ทุกครั้งที่ Save
- Updated At
- Updated By
ต้องอัปเดต
และสร้าง Audit Log
Activate
Policy Active
ได้เพียง
1 Policy
ต่อ Scope
หากมี Active อยู่แล้ว
แสดง Confirm Dialog
ให้ Deactivate ของเดิม
ก่อน Activate ตัวใหม่
Deactivate
รองรับ
Deactivate
หากไม่มี Active Policy เหลือ
แสดง Warning
Clone
Clone Policy
Copy
- Hours
- Mandatory
- Certificate
- Settings
ไม่ Copy
- Audit
- Version
- History
Default
Status
Draft
Version
1
Archive
ใช้
Soft Delete
เท่านั้น
ห้าม Hard Delete
Database
ใช้
deleted_at
deleted_by
หรือ
Status = Archived
ตามมาตรฐานของระบบ
Restore
Archived
สามารถ Restore
กลับมาเป็น
Inactive
ได้
Version History
ทุกครั้งที่ Save
สร้าง Version ใหม่
สามารถดูได้ว่า
Field ไหน
เปลี่ยนอะไร
เช่น
30 → 40
Audit Log
รองรับ
- Create
- Edit
- Clone
- Activate
- Deactivate
- Archive
- Restore
Audit Log
ต้องเก็บ
- User
- Role
- Action
- Date
- Old Value
- New Value
- IP
- Browser
Permission
ใช้ Permission-first เท่านั้น
ห้ามใช้ Business Role
Permission
- policy:view
- policy:create
- policy:update
- policy:delete
- policy:restore
- policy:clone
- policy:activate
- policy:audit
ทุก API
ต้องตรวจสอบ Permission
Server Side
UI
ใช้
- shadcn/ui
- TailwindCSS
Design System เดิม
ห้ามสร้าง Design ใหม่
Layout
Policy Management
[+ New Policy]
Search
Filter
Table
Action Menu
- View
- Edit
- Clone
- Activate
- Deactivate
- Archive
- Restore
- Version History
- Audit Log
แสดงตาม Permission
Validation
ตรวจสอบ
- Required Field
- Duplicate Name
- Hours Validation
- Effective Date
- Mandatory Course
Responsive
Desktop
Tablet
Mobile
ต้องใช้งานได้
Performance
- Memoization
- Server Pagination
- Lazy Rendering
- ห้าม Fetch ซ้ำ
Security
ทุก API
ต้องตรวจสอบ Permission
Server Side
ห้ามใช้ Client Permission เพียงอย่างเดียว
Existing Structure Review
ก่อนเริ่ม Coding
ให้ตรวจสอบว่า
- Database เดิมมีอะไร
- API เดิมมีอะไร
- Component เดิมมีอะไร
- Validation เดิมมีอะไร
จากนั้น
Reuse
Refactor
Extend
ตามความเหมาะสม
หากจำเป็นต้องสร้างใหม่
ให้ระบุเหตุผล
Deliverables
เมื่อดำเนินการเสร็จ
สร้างเอกสาร
docs/policy-management-enhancement-report.md
ประกอบด้วย
1. Existing Structure Review
- สิ่งที่พบ
- ส่วนที่ Reuse
- ส่วนที่ Refactor
- ส่วนที่ Extend
- ส่วนที่สร้างใหม่ พร้อมเหตุผล
2. Files Changed
รายการไฟล์ทั้งหมด
3. Database Changes
Migration
Column
Index
Constraint
4. Permission Matrix
Permission ที่ใช้
5. Business Rules
อธิบายทุก Rule
6. Versioning
Workflow
7. Audit Log
Action ที่รองรับ
8. UI Screens
- List
- View
- Create
- Edit
- Version
- Audit
9. Testing
- CRUD
- Permission
- Validation
- Responsive
- Regression
10. Remaining Improvements
เสนอแนวทางพัฒนาเพิ่มเติม เช่น
- Scheduled Activation
- Policy Comparison
- Rollback Version
- Policy Approval Workflow
- Notification Before Expiry
- Company / Department / Position Specific Policy
Success Criteria
งานถือว่าเสร็จเมื่อ
- ปรับปรุงจากโครงสร้างเดิม ไม่ Rewrite
- Reuse Component/API ได้มากที่สุด
- CRUD สมบูรณ์
- Clone
- Soft Delete
- Restore
- Activate / Deactivate
- Version History
- Audit Log
- Permission-first ครบทุก Action
- Validation ครบ
- Responsive สมบูรณ์
- TypeScript ไม่มี Error
- ESLint ผ่าน
- Build ผ่าน
- ไม่มี Regression
- รายงาน
docs/policy-management-enhancement-report.mdถูกสร้างเรียบร้อย