Files
alla-tms/docs/TMS_V2_MINIMAL_REFACTOR_PLAN.md
2026-07-16 09:53:14 +07:00

65 lines
2.1 KiB
Markdown

# TMS V2 Minimal Refactor Plan
แนวทางนี้ยึดหลักไม่รื้อโครงสร้างเดิมของโปรเจกต์
## สิ่งที่คงไว้
- Next.js App Router เดิม
- Drizzle ORM เดิม
- PostgreSQL เดิม
- NextAuth เดิม
- `/dashboard/*` routes เดิม
- `src/features/*` structure เดิม
- ตารางเดิมทั้งหมด
## สิ่งที่แก้เพิ่ม
### schema.ts
- `users.password_hash` เปลี่ยนเป็น nullable เพื่อรองรับ LDAP
- เพิ่ม `training_category` enum
- เพิ่ม `notification_type` enum
- เพิ่ม `announcement_status` enum
- เพิ่ม `import_status` enum
- เพิ่ม field ใน `courses`
- `course_code`
- `certificate_required`
- `training_cost`
- เพิ่ม field ใน `training_records`
- `approved_hours`
- `category`
- `reject_reason`
- เพิ่ม `pending_master_review` ให้ master ที่เกี่ยวข้อง
- เพิ่มตารางใหม่
- `training_policies`
- `notifications`
- `announcements`
- `audit_logs`
- `import_jobs`
## Navigation
แก้ `src/config/nav-config.ts` ให้เป็นเมนูตาม MVP Phase 1 และซ่อน Training Matrix เป็น Phase 2
## Routes ใหม่
- `/dashboard/pending-review`
- `/dashboard/training-policy`
- `/dashboard/import-employees`
- `/dashboard/master-review`
- `/dashboard/announcements`
- `/dashboard/audit-logs`
## ขั้นตอนสร้าง Migration
รันคำสั่งจาก root project:
```bash
npm run gen
npm run migrate
```
หรือถ้าใช้ bun:
```bash
bun run gen
bun run migrate
```
## หมายเหตุ
ยังไม่ได้ Implement business logic ของแต่ละ module ในรอบนี้ เป็นการปรับโครงสร้างฐานข้อมูลและ route/menu เพื่อรองรับ Sprint ถัดไป