table_name,column_name,data_type,size,is_nullable,is_primary_key,is_foreign_key,description
roles,id,INTEGER,10,NO,YES,NO,คีย์หลัก เพิ่มค่าอัตโนมัติ
roles,code,VARCHAR,50,NO,NO,NO,รหัสบทบาท (ADMIN | INSTRUCTOR | STUDENT)
roles,name,JSONB,,NO,NO,NO,ชื่อบทบาทหลายภาษา
roles,description,JSONB,,YES,NO,NO,คำอธิบายบทบาท
roles,created_at,TIMESTAMP,,NO,NO,NO,วันเวลาที่สร้าง
users,id,INTEGER,10,NO,YES,NO,คีย์หลัก เพิ่มค่าอัตโนมัติ
users,username,VARCHAR,100,NO,NO,NO,ชื่อผู้ใช้สำหรับเข้าสู่ระบบ (ไม่ซ้ำ)
users,email,VARCHAR,255,NO,NO,NO,อีเมล (ไม่ซ้ำ)
users,password,VARCHAR,255,NO,NO,NO,รหัสผ่านที่เข้ารหัสแล้ว
users,role_id,INTEGER,10,NO,NO,YES,อ้างอิงบทบาทผู้ใช้
users,email_verified_at,TIMESTAMP,,YES,NO,NO,วันเวลาที่ยืนยันอีเมล
users,created_at,TIMESTAMP,,NO,NO,NO,วันเวลาที่สร้าง
users,updated_at,TIMESTAMP,,YES,NO,NO,วันเวลาที่แก้ไขล่าสุด
user_profiles,id,INTEGER,10,NO,YES,NO,คีย์หลัก เพิ่มค่าอัตโนมัติ
user_profiles,user_id,INTEGER,10,NO,NO,YES,อ้างอิงผู้ใช้ (ไม่ซ้ำ)
user_profiles,prefix,VARCHAR,20,YES,NO,NO,"คำนำหน้าชื่อ enum(นาย, นาง, นางสาว, ดร.)"
user_profiles,first_name,VARCHAR,100,NO,NO,NO,ชื่อจริง
user_profiles,last_name,VARCHAR,100,NO,NO,NO,นามสกุล
user_profiles,phone,VARCHAR,20,YES,NO,NO,เบอร์โทรศัพท์
user_profiles,avatar_url,VARCHAR,500,YES,NO,NO,URL รูปโปรไฟล์
user_profiles,created_at,TIMESTAMP,,NO,NO,NO,วันเวลาที่สร้าง
user_profiles,updated_at,TIMESTAMP,,YES,NO,NO,วันเวลาที่แก้ไขล่าสุด
user_profiles,updated_by,INTEGER,10,YES,NO,YES,ผู้ใช้ที่แก้ไขล่าสุด
categories,id,INTEGER,10,NO,YES,NO,คีย์หลัก เพิ่มค่าอัตโนมัติ
categories,name,JSONB,,NO,NO,NO,ชื่อหมวดหมู่หลายภาษา
categories,slug,VARCHAR,100,NO,NO,NO,ตัวระบุสำหรับ URL (ไม่ซ้ำ)
categories,description,JSONB,,YES,NO,NO,คำอธิบายหลายภาษา
categories,icon,VARCHAR,100,YES,NO,NO,ตัวระบุไอคอน
categories,sort_order,INTEGER,10,NO,NO,NO,ลำดับการแสดงผล
categories,is_active,BOOLEAN,,NO,NO,NO,สถานะเปิดใช้งาน
categories,created_at,TIMESTAMP,,NO,NO,NO,วันเวลาที่สร้าง
categories,created_by,INTEGER,10,NO,NO,YES,ผู้สร้าง
categories,updated_at,TIMESTAMP,,YES,NO,NO,วันเวลาที่แก้ไขล่าสุด
categories,updated_by,INTEGER,10,YES,NO,YES,ผู้แก้ไขล่าสุด
courses,id,INTEGER,10,NO,YES,NO,คีย์หลัก เพิ่มค่าอัตโนมัติ
courses,category_id,INTEGER,10,YES,NO,YES,อ้างอิงหมวดหมู่
courses,title,JSONB,,NO,NO,NO,ชื่อคอร์สหลายภาษา
courses,slug,VARCHAR,200,NO,NO,NO,ตัวระบุสำหรับ URL (ไม่ซ้ำ)
courses,description,JSONB,,YES,NO,NO,คำอธิบายคอร์สหลายภาษา
courses,thumbnail_url,VARCHAR,500,YES,NO,NO,URL รูปปกคอร์ส
courses,price,"DECIMAL(10,2)",,NO,NO,NO,ราคาคอร์ส (ต้อง >= 0)
courses,is_free,BOOLEAN,,NO,NO,NO,คอร์สฟรี
courses,have_certificate,BOOLEAN,,NO,NO,NO,ออกใบประกาศนียบัตรเมื่อจบ
courses,status,VARCHAR,20,NO,NO,NO,"สถานะ enum(DRAFT, PENDING, APPROVED, REJECTED, ARCHIVED)"
courses,approved_by,INTEGER,10,YES,NO,YES,ผู้ดูแลที่อนุมัติ
courses,approved_at,TIMESTAMP,,YES,NO,NO,วันเวลาที่อนุมัติ
courses,rejection_reason,TEXT,,YES,NO,NO,เหตุผลที่ปฏิเสธ
courses,created_at,TIMESTAMP,,NO,NO,NO,วันเวลาที่สร้าง
courses,created_by,INTEGER,10,NO,NO,YES,ผู้สอนหลัก
courses,updated_at,TIMESTAMP,,YES,NO,NO,วันเวลาที่แก้ไขล่าสุด
courses,updated_by,INTEGER,10,YES,NO,YES,ผู้แก้ไขล่าสุด
course_instructors,id,INTEGER,10,NO,YES,NO,คีย์หลัก เพิ่มค่าอัตโนมัติ
course_instructors,course_id,INTEGER,10,NO,NO,YES,อ้างอิงคอร์ส
course_instructors,user_id,INTEGER,10,NO,NO,YES,อ้างอิงผู้สอน
course_instructors,is_primary,BOOLEAN,,NO,NO,NO,ผู้สอนหลัก
course_instructors,joined_at,TIMESTAMP,,NO,NO,NO,วันเวลาที่เข้าร่วม
chapters,id,INTEGER,10,NO,YES,NO,คีย์หลัก เพิ่มค่าอัตโนมัติ
chapters,course_id,INTEGER,10,NO,NO,YES,อ้างอิงคอร์ส
chapters,title,JSONB,,NO,NO,NO,ชื่อบทหลายภาษา
chapters,description,JSONB,,YES,NO,NO,คำอธิบายบทหลายภาษา
chapters,sort_order,INTEGER,10,NO,NO,NO,ลำดับการแสดงผล (ต้อง >= 0)
chapters,is_published,BOOLEAN,,NO,NO,NO,สถานะเผยแพร่
chapters,created_at,TIMESTAMP,,NO,NO,NO,วันเวลาที่สร้าง
chapters,updated_at,TIMESTAMP,,YES,NO,NO,วันเวลาที่แก้ไขล่าสุด
lessons,id,INTEGER,10,NO,YES,NO,คีย์หลัก เพิ่มค่าอัตโนมัติ
lessons,chapter_id,INTEGER,10,NO,NO,YES,อ้างอิงบท
lessons,title,JSONB,,NO,NO,NO,ชื่อบทเรียนหลายภาษา
lessons,content,JSONB,,YES,NO,NO,เนื้อหาบทเรียนหลายภาษา
lessons,type,VARCHAR,20,NO,NO,NO,"ประเภทบทเรียน (VIDEO, QUIZ)"
lessons,duration_minutes,INTEGER,10,YES,NO,NO,ระยะเวลาโดยประมาณ (นาที)
lessons,sort_order,INTEGER,10,NO,NO,NO,ลำดับการแสดงผล (ต้อง >= 0)
lessons,is_sequential,BOOLEAN,,NO,NO,NO,ต้องเรียนตามลำดับ
lessons,prerequisite_lesson_ids,JSONB,,YES,NO,NO,รายการ ID บทเรียนที่ต้องเรียนก่อน
lessons,require_pass_quiz,BOOLEAN,,YES,NO,NO,ต้องผ่านแบบทดสอบก่อนดำเนินการต่อ
lessons,is_published,BOOLEAN,,NO,NO,NO,สถานะเผยแพร่
lessons,created_at,TIMESTAMP,,NO,NO,NO,วันเวลาที่สร้าง
lessons,updated_at,TIMESTAMP,,YES,NO,NO,วันเวลาที่แก้ไขล่าสุด
quizzes,id,INTEGER,10,NO,YES,NO,คีย์หลัก เพิ่มค่าอัตโนมัติ
quizzes,lesson_id,INTEGER,10,NO,NO,YES,อ้างอิงบทเรียน
quizzes,title,JSONB,,NO,NO,NO,ชื่อแบบทดสอบหลายภาษา
quizzes,description,JSONB,,YES,NO,NO,คำอธิบายแบบทดสอบหลายภาษา
quizzes,passing_score,INTEGER,10,NO,NO,NO,คะแนนผ่าน (0-100)
quizzes,time_limit,INTEGER,10,YES,NO,NO,เวลาจำกัด (นาที ต้อง > 0 ถ้ากำหนด)
quizzes,shuffle_questions,BOOLEAN,,NO,NO,NO,สุ่มลำดับคำถาม
quizzes,shuffle_choices,BOOLEAN,,NO,NO,NO,สุ่มลำดับตัวเลือก
quizzes,show_answers_after_completion,BOOLEAN,,NO,NO,NO,แสดงเฉลยหลังทำเสร็จ
quizzes,created_at,TIMESTAMP,,NO,NO,NO,วันเวลาที่สร้าง
quizzes,created_by,INTEGER,10,NO,NO,YES,ผู้สร้าง
quizzes,updated_at,TIMESTAMP,,YES,NO,NO,วันเวลาที่แก้ไขล่าสุด
quizzes,updated_by,INTEGER,10,YES,NO,YES,ผู้แก้ไขล่าสุด
questions,id,INTEGER,10,NO,YES,NO,คีย์หลัก เพิ่มค่าอัตโนมัติ
questions,quiz_id,INTEGER,10,NO,NO,YES,อ้างอิงแบบทดสอบ
questions,question,JSONB,,NO,NO,NO,ข้อความคำถามหลายภาษา
questions,explanation,JSONB,,YES,NO,NO,คำอธิบายเฉลยหลายภาษา
questions,question_type,VARCHAR,20,NO,NO,NO,"ประเภทคำถาม enum(MULTIPLE_CHOICE, TRUE_FALSE, SHORT_ANSWER)"
questions,score,INTEGER,10,NO,NO,NO,คะแนนสำหรับคำตอบที่ถูก (ต้อง > 0)
questions,sort_order,INTEGER,10,NO,NO,NO,ลำดับการแสดงผล
questions,created_at,TIMESTAMP,,NO,NO,NO,วันเวลาที่สร้าง
questions,updated_at,TIMESTAMP,,YES,NO,NO,วันเวลาที่แก้ไขล่าสุด
choices,id,INTEGER,10,NO,YES,NO,คีย์หลัก เพิ่มค่าอัตโนมัติ
choices,question_id,INTEGER,10,NO,NO,YES,อ้างอิงคำถาม
choices,text,JSONB,,NO,NO,NO,ข้อความตัวเลือกหลายภาษา
choices,is_correct,BOOLEAN,,NO,NO,NO,คำตอบที่ถูกต้อง
choices,sort_order,INTEGER,10,NO,NO,NO,ลำดับการแสดงผล
enrollments,id,INTEGER,10,NO,YES,NO,คีย์หลัก เพิ่มค่าอัตโนมัติ
enrollments,user_id,INTEGER,10,NO,NO,YES,อ้างอิงนักเรียน
enrollments,course_id,INTEGER,10,NO,NO,YES,อ้างอิงคอร์ส
enrollments,status,VARCHAR,20,NO,NO,NO,"สถานะ enum(ENROLLED, IN_PROGRESS, COMPLETED, DROPPED)"
enrollments,progress_percentage,INTEGER,10,NO,NO,NO,เปอร์เซ็นต์ความคืบหน้า (0-100)
enrollments,enrolled_at,TIMESTAMP,,NO,NO,NO,วันเวลาที่ลงทะเบียน
enrollments,started_at,TIMESTAMP,,YES,NO,NO,วันเวลาที่เข้าเรียนครั้งแรก
enrollments,completed_at,TIMESTAMP,,YES,NO,NO,วันเวลาที่เรียนจบ
enrollments,last_accessed_at,TIMESTAMP,,YES,NO,NO,วันเวลาที่เข้าใช้ล่าสุด
certificates,id,INTEGER,10,NO,YES,NO,คีย์หลัก เพิ่มค่าอัตโนมัติ
certificates,user_id,INTEGER,10,NO,NO,YES,อ้างอิงนักเรียน
certificates,course_id,INTEGER,10,NO,NO,YES,อ้างอิงคอร์ส
certificates,enrollment_id,INTEGER,10,NO,NO,YES,อ้างอิงการลงทะเบียน (ไม่ซ้ำ)
certificates,file_path,VARCHAR,500,NO,NO,NO,เส้นทาง S3 ไฟล์ PDF ใบประกาศนียบัตร
certificates,issued_at,TIMESTAMP,,NO,NO,NO,วันเวลาที่ออกใบประกาศนียบัตร
lesson_progress,id,INTEGER,10,NO,YES,NO,คีย์หลัก เพิ่มค่าอัตโนมัติ
lesson_progress,user_id,INTEGER,10,NO,NO,YES,อ้างอิงนักเรียน
lesson_progress,lesson_id,INTEGER,10,NO,NO,YES,อ้างอิงบทเรียน
lesson_progress,is_completed,BOOLEAN,,NO,NO,NO,สถานะเรียนจบ
lesson_progress,completed_at,TIMESTAMP,,YES,NO,NO,วันเวลาที่เรียนจบ
lesson_progress,video_progress_seconds,INTEGER,10,YES,NO,NO,ความคืบหน้าวีดีโอ (วินาที)
lesson_progress,video_duration_seconds,INTEGER,10,YES,NO,NO,ความยาววีดีโอทั้งหมด (วินาที)
lesson_progress,video_progress_percentage,"DECIMAL(5,2)",,YES,NO,NO,เปอร์เซ็นต์ความคืบหน้าวีดีโอ
lesson_progress,last_watched_at,TIMESTAMP,,YES,NO,NO,วันเวลาที่ดูล่าสุด
lesson_progress,created_at,TIMESTAMP,,NO,NO,NO,วันเวลาที่สร้าง
lesson_progress,updated_at,TIMESTAMP,,YES,NO,NO,วันเวลาที่แก้ไขล่าสุด
quiz_attempts,id,INTEGER,10,NO,YES,NO,คีย์หลัก เพิ่มค่าอัตโนมัติ
quiz_attempts,user_id,INTEGER,10,NO,NO,YES,อ้างอิงนักเรียน
quiz_attempts,quiz_id,INTEGER,10,NO,NO,YES,อ้างอิงแบบทดสอบ
quiz_attempts,score,INTEGER,10,NO,NO,NO,คะแนนที่ได้ (0-100)
quiz_attempts,total_questions,INTEGER,10,NO,NO,NO,จำนวนคำถามทั้งหมด
quiz_attempts,correct_answers,INTEGER,10,NO,NO,NO,จำนวนคำตอบที่ถูก
quiz_attempts,is_passed,BOOLEAN,,NO,NO,NO,สถานะผ่าน
quiz_attempts,attempt_number,INTEGER,10,NO,NO,NO,ครั้งที่ทำ
quiz_attempts,answers,JSONB,,YES,NO,NO,คำตอบของนักเรียนสำหรับตรวจสอบ
quiz_attempts,started_at,TIMESTAMP,,NO,NO,NO,วันเวลาที่เริ่มทำ
quiz_attempts,completed_at,TIMESTAMP,,YES,NO,NO,วันเวลาที่ทำเสร็จ
announcements,id,INTEGER,10,NO,YES,NO,คีย์หลัก เพิ่มค่าอัตโนมัติ
announcements,course_id,INTEGER,10,NO,NO,YES,อ้างอิงคอร์ส
announcements,title,JSONB,,NO,NO,NO,ชื่อประกาศหลายภาษา
announcements,content,JSONB,,NO,NO,NO,เนื้อหาประกาศหลายภาษา
announcements,status,VARCHAR,20,NO,NO,NO,"สถานะ enum(DRAFT, PUBLISHED, ARCHIVED)"
announcements,is_pinned,BOOLEAN,,NO,NO,NO,ปักหมุด
announcements,published_at,TIMESTAMP,,YES,NO,NO,วันเวลาที่กำหนดเผยแพร่
announcements,created_at,TIMESTAMP,,NO,NO,NO,วันเวลาที่สร้าง
announcements,created_by,INTEGER,10,NO,NO,YES,ผู้สร้าง
announcements,updated_at,TIMESTAMP,,YES,NO,NO,วันเวลาที่แก้ไขล่าสุด
announcements,updated_by,INTEGER,10,YES,NO,YES,ผู้แก้ไขล่าสุด
announcement_attachments,id,INTEGER,10,NO,YES,NO,คีย์หลัก เพิ่มค่าอัตโนมัติ
announcement_attachments,announcement_id,INTEGER,10,NO,NO,YES,อ้างอิงประกาศ
announcement_attachments,file_name,VARCHAR,255,NO,NO,NO,ชื่อไฟล์
announcement_attachments,file_path,VARCHAR,500,NO,NO,NO,เส้นทาง/คีย์ S3
announcement_attachments,file_size,INTEGER,10,NO,NO,NO,ขนาดไฟล์ (ไบต์)
announcement_attachments,mime_type,VARCHAR,100,NO,NO,NO,ประเภท MIME
announcement_attachments,created_at,TIMESTAMP,,NO,NO,NO,วันเวลาที่สร้าง
lesson_attachments,id,INTEGER,10,NO,YES,NO,คีย์หลัก เพิ่มค่าอัตโนมัติ
lesson_attachments,lesson_id,INTEGER,10,NO,NO,YES,อ้างอิงบทเรียน
lesson_attachments,file_name,VARCHAR,255,NO,NO,NO,ชื่อไฟล์
lesson_attachments,file_path,VARCHAR,500,NO,NO,NO,เส้นทาง/คีย์ S3
lesson_attachments,file_size,INTEGER,10,NO,NO,NO,ขนาดไฟล์ (ไบต์)
lesson_attachments,mime_type,VARCHAR,100,NO,NO,NO,ประเภท MIME
lesson_attachments,description,JSONB,,YES,NO,NO,คำอธิบายไฟล์หลายภาษา
lesson_attachments,sort_order,INTEGER,10,NO,NO,NO,ลำดับการแสดงผล
lesson_attachments,created_at,TIMESTAMP,,NO,NO,NO,วันเวลาที่สร้าง
orders,id,INTEGER,10,NO,YES,NO,คีย์หลัก เพิ่มค่าอัตโนมัติ
orders,user_id,INTEGER,10,NO,NO,YES,อ้างอิงลูกค้า
orders,total_amount,"DECIMAL(10,2)",,NO,NO,NO,ยอดรวมคำสั่งซื้อ
orders,status,VARCHAR,20,NO,NO,NO,"สถานะ enum(PENDING, PAID, CANCELLED, REFUNDED)"
orders,created_at,TIMESTAMP,,NO,NO,NO,วันเวลาที่สร้าง
orders,updated_at,TIMESTAMP,,YES,NO,NO,วันเวลาที่แก้ไขล่าสุด
order_items,id,INTEGER,10,NO,YES,NO,คีย์หลัก เพิ่มค่าอัตโนมัติ
order_items,order_id,INTEGER,10,NO,NO,YES,อ้างอิงคำสั่งซื้อ
order_items,course_id,INTEGER,10,NO,NO,YES,อ้างอิงคอร์ส
order_items,price,"DECIMAL(10,2)",,NO,NO,NO,ราคาคอร์ส ณ เวลาที่ซื้อ
order_items,created_at,TIMESTAMP,,NO,NO,NO,วันเวลาที่สร้าง
payments,id,INTEGER,10,NO,YES,NO,คีย์หลัก เพิ่มค่าอัตโนมัติ
payments,order_id,INTEGER,10,NO,NO,YES,อ้างอิงคำสั่งซื้อ
payments,provider,VARCHAR,50,NO,NO,NO,"ผู้ให้บริการชำระเงิน enum(stripe, paypal, promptpay)"
payments,transaction_id,VARCHAR,100,YES,NO,NO,รหัสธุรกรรมจากผู้ให้บริการ (ไม่ซ้ำ)
payments,amount,"DECIMAL(10,2)",,NO,NO,NO,จำนวนเงินที่ชำระ
payments,status,VARCHAR,20,NO,NO,NO,"สถานะ enum(PENDING, SUCCESS, FAILED)"
payments,paid_at,TIMESTAMP,,YES,NO,NO,วันเวลาที่ชำระเงิน
payments,created_at,TIMESTAMP,,NO,NO,NO,วันเวลาที่สร้าง
payments,updated_at,TIMESTAMP,,YES,NO,NO,วันเวลาที่แก้ไขล่าสุด
instructor_balances,id,INTEGER,10,NO,YES,NO,คีย์หลัก เพิ่มค่าอัตโนมัติ
instructor_balances,instructor_id,INTEGER,10,NO,NO,YES,อ้างอิงผู้สอน (ไม่ซ้ำ)
instructor_balances,available_amount,"DECIMAL(10,2)",,NO,NO,NO,ยอดเงินคงเหลือ
instructor_balances,withdrawn_amount,"DECIMAL(10,2)",,NO,NO,NO,ยอดเงินที่ถอนแล้วทั้งหมด
instructor_balances,created_at,TIMESTAMP,,NO,NO,NO,วันเวลาที่สร้าง
instructor_balances,updated_at,TIMESTAMP,,YES,NO,NO,วันเวลาที่แก้ไขล่าสุด
withdrawal_requests,id,INTEGER,10,NO,YES,NO,คีย์หลัก เพิ่มค่าอัตโนมัติ
withdrawal_requests,instructor_id,INTEGER,10,NO,NO,YES,อ้างอิงผู้สอน
withdrawal_requests,amount,"DECIMAL(10,2)",,NO,NO,NO,จำนวนเงินที่ขอถอน
withdrawal_requests,status,VARCHAR,20,NO,NO,NO,"สถานะ enum(PENDING, APPROVED, REJECTED, PAID)"
withdrawal_requests,approved_by,INTEGER,10,YES,NO,YES,ผู้ดูแลที่อนุมัติ
withdrawal_requests,approved_at,TIMESTAMP,,YES,NO,NO,วันเวลาที่อนุมัติ
withdrawal_requests,rejected_reason,TEXT,,YES,NO,NO,เหตุผลที่ปฏิเสธ
withdrawal_requests,created_at,TIMESTAMP,,NO,NO,NO,วันเวลาที่สร้าง
withdrawal_requests,updated_at,TIMESTAMP,,YES,NO,NO,วันเวลาที่แก้ไขล่าสุด
withdrawal_requests,updated_by,INTEGER,10,YES,NO,YES,ผู้แก้ไขล่าสุด