Files
alla-tms/plans/online-lesson-create-workflow-redesign.md
2026-07-16 09:53:14 +07:00

9.6 KiB

Prompt: Redesign Online Lesson Create Workflow (Draft & Submit for Review)

Objective

ปรับปรุงหน้า Create Online Lesson

/dashboard/online-lessons/manage/new

โดยเปลี่ยนจากการให้ผู้ใช้เลือก สถานะ (Status) ผ่าน Dropdown

เป็นการใช้ Action Button เพื่อกำหนด Workflow แทน

พร้อมปรับทั้ง Frontend, Backend, Validation, Permission และ Workflow ให้รองรับ Approval Process ของระบบ


Background

ระบบกำลังเปลี่ยนจากการให้ผู้ใช้เลือก Status เอง

เช่น

Draft

Pending Review

Published

ซึ่งไม่เหมาะสม

เป็น

Workflow Based

โดยผู้ใช้จะไม่สามารถเลือก Status เองได้

แต่ Status จะถูกกำหนดจาก Action ที่ผู้ใช้เลือกแทน


Business Requirement

Staff

สามารถ

  • บันทึกฉบับร่าง
  • ส่งตรวจสอบ

Manager

สามารถ

  • ตรวจสอบ
  • อนุมัติ

IT Admin

สามารถ

  • ตรวจสอบ
  • อนุมัติ
  • เผยแพร่

Super Admin

สามารถทำได้ทั้งหมด


IMPORTANT

ก่อนแก้ไข

AI ต้องตรวจสอบ Existing Architecture ก่อน

ต้อง Audit

  • Online Lesson Form
  • Validation
  • Submit Handler
  • API
  • Status Enum
  • Status Constant
  • Workflow
  • Permission
  • Notification
  • Audit

ห้ามเดา

ห้าม Hardcode

ห้ามสร้าง Pattern ใหม่ หากระบบมี Pattern เดิมอยู่แล้ว

ต้อง Reuse

  • Shared Form
  • Shared Button
  • Shared Mutation
  • Shared Status
  • Shared Permission
  • Shared Dialog
  • Shared Toast
  • Shared Validation

Phase 0 — Architecture Audit

ตรวจสอบ

Frontend

  • Create Page
  • Edit Page
  • Form Component
  • Status Select
  • Submit Function
  • Button Component

Backend

ตรวจสอบ

  • API
  • Route Handler
  • Server Action
  • Validation
  • Service
  • Repository

Database

ตรวจสอบ

Status Field

เช่น

status

workflowStatus

lessonStatus

และ Enum

ที่ระบบใช้อยู่จริง


Permission

ตรวจสอบ

Permission First

หรือ

Compatibility Mode

ห้ามใช้

businessRole

isHRD()

หากระบบมี Permission แล้ว


Phase 1 — Remove Status Field

ลบ

สถานะ *

ออกจาก

Online Lesson Create Form

ผู้ใช้

ห้าม

เลือก Status เอง


ตรวจสอบ

  • Form
  • Schema
  • Validation
  • Default Value
  • Payload

ให้สอดคล้องกันทั้งหมด


Phase 2 — Redesign Action Buttons

เปลี่ยน Footer Action

จาก

Cancel

Create

เป็น

ยกเลิก

บันทึกฉบับร่าง

ส่งตรวจสอบ

Layout

---------------------------------------------------

Cancel

Save Draft

Submit For Review

Primary Button

คือ

ส่งตรวจสอบ

Secondary Button

คือ

บันทึกฉบับร่าง

Phase 3 — Draft Action

เมื่อกด

บันทึกฉบับร่าง

ระบบต้อง

Save

พร้อม Status

DRAFT

หรือ

Status เดิมของระบบ

ห้าม Hardcode


Draft

สามารถ

Edit

Delete

ได้

เฉพาะ

Owner

ตาม Permission เดิม


Phase 4 — Submit For Review

เมื่อกด

ส่งตรวจสอบ

ระบบต้อง

Save

พร้อม Status

PENDING_REVIEW

หรือ

Status เดิมของระบบ

ห้าม Hardcode


Validation

ต้องใช้

Validation

สำหรับ

Ready To Review

ไม่ใช่ Validation ของ Draft


เมื่อ Submit สำเร็จ

แสดง Toast

เช่น

ส่งบทเรียนเพื่อตรวจสอบเรียบร้อยแล้ว

Phase 5 — Validation

ตรวจสอบ

Validation

แยกตาม Action


Save Draft

Validation

สามารถผ่อนปรนได้

หากระบบรองรับ Draft Validation

เช่น

Title

อาจยังไม่ครบ

แต่สามารถ Save ได้


Submit

Validation

ต้องครบทุก Field

เช่น

  • Title
  • Description
  • Category
  • Video
  • Cover
  • Duration

หรือ Field ที่ระบบกำหนด

ต้องผ่านทั้งหมด


Phase 6 — Backend

ตรวจสอบ

API

ห้ามรับ

Status

จาก User

แบบอิสระ

เช่น

Published

Approved

Rejected

ผ่าน Create API


API

ต้องรองรับ

Action

เช่น

draft

submit

หรือ

Status

ที่ถูกตรวจสอบแล้ว

ตาม Pattern ของระบบ


ต้อง Validate

Transition

เช่น

Draft

Pending Review

ถูกต้อง

แต่

Draft

Published

ต้องห้าม


Phase 7 — Permission

Staff

เห็น

Save Draft

Submit

ไม่เห็น

Approve

Publish

Reject


Manager

สามารถ

Approve

Return

Reject

จากหน้า Review

ไม่ใช่จากหน้า Create


IT Admin

สามารถ

Approve

Publish

Return

Reject

ตาม Workflow


Super Admin

สามารถ

ทำได้ทั้งหมด


Phase 8 — Notification

เมื่อ

Submit

แจ้ง

Manager

IT


เมื่อ

Return

แจ้ง

Author


เมื่อ

Approve

แจ้ง

Author


เมื่อ

Publish

แจ้ง

Author


ใช้

Notification Pattern

เดิมของระบบ


Phase 9 — Audit

สร้าง Audit

เช่น

ONLINE_LESSON_DRAFT_SAVED

ONLINE_LESSON_SUBMITTED

ข้อมูล

  • User
  • Action
  • Previous Status
  • New Status
  • Timestamp

Phase 10 — UI

Status

ไม่ต้องแสดง

ใน Form

แต่

List

และ

Detail

ยังต้องแสดง

Badge

ตามเดิม

เช่น

Draft

Pending Review

Approved

Published

Phase 11 — Regression Testing

ตรวจสอบ

UI

  • ไม่มี Status Dropdown
  • มี Save Draft
  • มี Submit

Draft

  • Save สำเร็จ
  • Status ถูกต้อง
  • Edit ได้
  • Delete ได้

Submit

  • Validation ครบ
  • Status Pending Review
  • Toast ถูกต้อง

Permission

Staff

ไม่สามารถ

Publish

Approve

Reject


Manager

Approve

ได้


IT

Publish

ได้


Database

Status

ถูกต้อง


API

ไม่สามารถส่ง

Published

ตรงจาก Create


Notification

ส่งครบ


Audit

บันทึกครบ


Code Quality

ตรวจสอบ

  • ไม่มี Duplicate Logic
  • ไม่มี Hardcode Status
  • ไม่มี Hardcode Role
  • ไม่มี any ใหม่
  • ไม่มี console.log
  • ไม่มี Dead Code
  • Reuse Existing Components
  • Reuse Existing Workflow

Documentation

สร้างรายงาน

docs/online-lesson-create-workflow-redesign-report.md

รายงานต้องมี

# Online Lesson Create Workflow Redesign Report

## Executive Summary

## Current Architecture

## Current Limitation

## Workflow Design

## Status Mapping

## Action Mapping

## Permission Matrix

## Validation Changes

## Backend Changes

## UI Changes

## Notification

## Audit Log

## Files Modified

## Testing Result

## Regression Result

## Risks

## Recommendations

Future Improvements

เสนอแนวทาง

เช่น

  • Approval Timeline
  • Review Comment
  • Multiple Reviewer
  • Scheduled Publish
  • Workflow Configuration
  • Content Versioning

Constraints

ห้าม

  • ให้ User เลือก Status เอง
  • Hardcode Status
  • Hardcode Permission
  • Duplicate Workflow
  • เพิ่ม Library ใหม่
  • ใช้ any
  • เปลี่ยน Business Logic อื่น

ต้อง

  • ใช้ Shared Workflow
  • ใช้ Shared Permission
  • ใช้ Shared Validation
  • ใช้ Shared Status
  • ใช้ Shared Notification
  • รักษา Type Safety
  • รักษา Coding Standard

Final Response

เมื่อดำเนินการเสร็จ

ให้สรุปเป็นภาษาไทย

  1. Architecture ที่ตรวจพบ
  2. Workflow ใหม่
  3. การ Mapping ระหว่าง Action กับ Status
  4. Permission Matrix
  5. Validation ที่เปลี่ยน
  6. Backend ที่แก้ไข
  7. Notification
  8. Audit Log
  9. รายชื่อไฟล์ที่แก้ไข
  10. ผลการทดสอบ
  11. ความเสี่ยงที่เหลือ
  12. Path ของรายงาน
docs/online-lesson-create-workflow-redesign-report.md