# Training Record Draft Submit Workflow Report

## Summary

เริ่มลงมือปรับ workflow ฝั่ง `training-records` โดยรอบนี้เน้นให้ปุ่มหลักในฟอร์มสะท้อนสถานะจริงของรายการมากขึ้น และทำให้ action menu ในตารางใช้ข้อความภาษาไทยที่สอดคล้องกับระบบ

## Files Changed

- `src/features/training-records/components/training-record-form.tsx`
- `src/features/training-records/components/training-record-tables/cell-action.tsx`

## Requirement Mapping

- Requirement เรื่องปุ่มในหน้า Edit Draft:
  ปุ่ม submit หลักแสดง label ตามสถานะจริง เช่น `บันทึกประวัติการอบรม` สำหรับ draft และ `ส่งตรวจสอบอีกครั้ง` สำหรับรายการที่ถูกตีกลับ
- Requirement เรื่อง workflow ของรายการตีกลับ:
  ปุ่ม submit หลักรองรับ label สำหรับการ re-submit โดยไม่เปลี่ยน flow ฝั่ง route handler เดิม
- Requirement เรื่องหน้ารายการ:
  action menu เปลี่ยนข้อความเป็นไทยเพื่อให้สอดคล้องกับสถานะและการใช้งานในระบบ

## Implementation Details

- เพิ่ม helper ในฟอร์มเพื่อคำนวณข้อความปุ่มหลักจาก `approval_status`
- เพิ่ม helper สำหรับข้อความขณะกำลัง submit เพื่อแยก draft กับ submit ให้ชัดขึ้น
- ซ่อนปุ่ม submit เดิมในฟอร์มไว้ แล้วเรนเดอร์ปุ่ม submit ใหม่ด้วย label ตาม workflow ปัจจุบัน
- ปรับ action menu ในตารางจากข้อความอังกฤษเป็นข้อความไทย

## Button Behavior

- Create:
  ปุ่มหลักใช้ข้อความ `ส่งตรวจสอบ`
- Edit Draft:
  ปุ่มหลักใช้ข้อความ `บันทึกประวัติการอบรม`
- Edit Needs Revision:
  ปุ่มหลักใช้ข้อความ `ส่งตรวจสอบอีกครั้ง`
- ทุกสถานะที่ยังแก้ไขได้:
  ปุ่ม `บันทึกฉบับร่าง` ยังแสดงตามเดิม

## Validation Rules

- รอบนี้ยังคงใช้ validation และ route-handler workflow เดิมของฟีเจอร์
- ยังไม่ได้แยก success/error messaging และ invalid-state messaging ตาม intent แบบเต็มรูปแบบในรอบนี้

## Status Workflow

- ฟอร์มและ action ปัจจุบันยังยึด workflow เดิมของระบบ:
  `draft -> pending -> approved / needs_revision`
- รายการ `needs_revision` ยังถูกมองเป็นสถานะที่ employee กลับมาแก้ไขและส่งใหม่ได้

## Testing Result

- ยังไม่ได้รัน `lint` หรือ `build` ในรอบนี้
- ตรวจสอบ diff เชิงโค้ดแล้วว่าปุ่ม submit ใหม่อิง `approval_status` จริง

## Impact Analysis

- ไม่มีการเปลี่ยน database schema
- ไม่มีการเปลี่ยน route handler contract
- ไม่มีการเปลี่ยนสิทธิ์การเข้าถึงฝั่ง server

## Notes / Limitations

- ไฟล์ฟอร์มมีข้อความไทยที่มีปัญหา encoding ในบางช่วง ทำให้ patch เฉพาะจุดทำได้ยากกว่าปกติ
- รอบถัดไปควรเก็บงานต่อในส่วน validation/error/success messaging ให้แยกตาม `draft` กับ `submit` แบบครบ flow
