# ขอบเขตความสามารถของระบบ (User Roles & Responsibilities) ## 1. Admin (ผู้ดูแลระบบ) **บทบาทหลัก:** ควบคุมระบบ ตรวจสอบความถูกต้อง และอนุมัติธุรกรรมทางการเงิน --- ### การจัดการผู้ใช้ * ดูรายชื่อผู้ใช้ทั้งหมด * สร้าง / แก้ไข / ลบผู้ใช้ * กำหนดบทบาท (Admin / Instructor / Learner) * ระงับหรือยกเลิกการใช้งานผู้ใช้ * รีเซ็ตรหัสผ่านผู้ใช้ **รองรับการออกแบบ:** * RBAC (Role-based Access Control) --- ### การจัดการหลักสูตร (เชิงกำกับดูแล) * ดูหลักสูตรทั้งหมดในระบบ * อนุมัติ / ระงับการเผยแพร่หลักสูตร * ตรวจสอบคอร์สเสียเงินว่าถูกต้องตามนโยบาย * จัดการหมวดหมู่หลักสูตร > ผู้สอนเป็นคนสร้าง > **Admin มีอำนาจอนุมัติสุดท้าย** --- ### การจัดการคำสั่งซื้อและรายรับ * ดูคำสั่งซื้อทั้งหมดของระบบ * ตรวจสอบสถานะการชำระเงิน * ดูรายได้แยกตามผู้สอน / คอร์ส * ตรวจสอบประวัติการชำระเงินย้อนหลัง --- ### การอนุมัติการถอนเงิน (เสริม) * ดูรายการคำขอถอนเงินจากผู้สอน * ตรวจสอบยอดเงินคงเหลือของผู้สอน * อนุมัติ / ปฏิเสธคำขอถอนเงิน * บันทึกสถานะการถอน: * pending * approved * rejected * paid * บันทึกผู้อนุมัติ (Admin) > ❗ Admin ไม่สามารถแก้ไขยอดเงินตรงๆ > ทุกการเคลื่อนไหวต้องมี record --- ### Dashboard ภาพรวม * จำนวนผู้ใช้ทั้งหมด * จำนวนคอร์ส (ฟรี / เสียเงิน) * ยอดขายรวม * ยอดเงินที่รอถอน * ยอดเงินที่จ่ายออกแล้ว --- ## 2. Instructor (ผู้สอน) **บทบาทหลัก:** สร้างคอร์ส สร้างรายได้ และถอนเงิน --- ### การสร้างและจัดการหลักสูตร * สร้าง / แก้ไข / ลบหลักสูตรของตนเอง * กำหนดรายละเอียดคอร์ส * กำหนดสถานะคอร์ส: * ฟรี * เสียเงิน * กำหนดราคาคอร์ส * เปิด / ปิดการขาย * ส่งคอร์สให้ Admin อนุมัติก่อนเผยแพร่ --- ### การจัดการเนื้อหา * สร้างบท (Chapter) * สร้างบทเรียน (Lesson) * อัปโหลดวิดีโอ / เอกสาร / ข้อความ * จัดลำดับบทเรียน * ตั้งเงื่อนไขการเข้าเรียน * กำหนดบทเรียนตัวอย่าง (Preview Lesson) ที่ผู้เรียนสามารถดูได้ก่อนลงทะเบียน/ซื้อคอร์ส --- ### การจัดการแบบทดสอบ * สร้างแบบทดสอบ * ตั้งเวลา คะแนน เกณฑ์ผ่าน * ดูผลการทำแบบทดสอบของผู้เรียน --- ### การติดตามผู้เรียน * ดูรายชื่อผู้เรียนในคอร์ส * ดูความคืบหน้าการเรียน * ดูคะแนนและสถิติการเรียน --- ### รายได้ของผู้สอน * ดูรายได้จากแต่ละคอร์ส * ดูยอดเงิน: * ยอดเงินทั้งหมด * ยอดเงินที่ถอนแล้ว * ยอดเงินที่ถอนได้ (Available Balance) * ดูประวัติคำสั่งซื้อที่เกี่ยวข้องกับคอร์สตนเอง --- ### การถอนเงิน * ยื่นคำขอถอนเงิน (Withdraw Request) * ระบุ: * จำนวนเงิน * ช่องทางรับเงิน (เช่น ธนาคาร) * ดูสถานะการถอน: * รออนุมัติ * อนุมัติแล้ว * ถูกปฏิเสธ * โอนเงินแล้ว * ดูประวัติการถอนเงินทั้งหมด > ถ้าเป็นคอร์สฟรี > > * ไม่มีรายได้ > * ไม่สามารถถอนเงินได้ --- ## 3. Learner (ผู้เรียน) **บทบาทหลัก:** ซื้อคอร์ส เรียน และติดตามผลการเรียน --- ### บัญชีผู้ใช้ * สมัครสมาชิก / เข้าสู่ระบบ * แก้ไขข้อมูลโปรไฟล์ --- ### การค้นหาและดูคอร์ส * ดูคอร์สทั้งหมด * เห็นสถานะคอร์ส: * ฟรี * เสียเงิน (แสดงราคา) * ดูรายละเอียดคอร์สก่อนซื้อ * ดูบทเรียนตัวอย่าง (Preview Lesson) ก่อนตัดสินใจลงทะเบียน/ซื้อคอร์ส --- ### การลงทะเบียน / ซื้อคอร์ส * ลงทะเบียนคอร์สฟรี * ซื้อคอร์สเสียเงิน * ดูประวัติการลงทะเบียน * ดูประวัติการซื้อคอร์ส > **หลักการ:** > เข้าเรียนได้ = ต้องมี enrollment --- ### การเรียน * เข้าถึงบทเรียนหลังจาก: * ลงทะเบียน (ฟรี) * หรือชำระเงินสำเร็จ (เสียเงิน) * ระบบบันทึกความคืบหน้าอัตโนมัติ --- ### การทำแบบทดสอบ * ทำแบบทดสอบ * ดูคะแนน * ดูประวัติการทำข้อสอบ --- ### ผลการเรียน * ดู % ความคืบหน้าคอร์ส * ดูผลคะแนนรวม * รับใบประกาศนียบัตร (ถ้ามี) --- ## โครงสร้างแนวคิดข้อมูล (ER Diagram) ```text User ├─ Role Course ├─ instructor_id ├─ price ├─ status (draft / pending / approved) Chapter ├─ course_id ├─ order Lesson ├─ chapter_id ├─ order ├─ is_preview (true/false) Enrollment ├─ user_id ├─ course_id Order ├─ user_id ├─ total_amount ├─ status InstructorBalance ├─ instructor_id ├─ available_amount ├─ withdrawn_amount WithdrawalRequest ├─ instructor_id ├─ amount ├─ status ├─ approved_by (admin_id) ```