Files
alla-tms/plans/policy-management-enhancement.md
2026-07-16 09:53:14 +07:00

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 ถูกสร้างเรียบร้อย