from django.db import models from core import settings User = settings.AUTH_USER_MODEL class Enrollment(models.Model): user = models.ForeignKey( User, on_delete=models.CASCADE, related_name='enrollments', ) course = models.ForeignKey( "Course", on_delete=models.CASCADE, related_name='enrollments', ) enrolled_at = models.DateTimeField(auto_now_add=True) class Meta: unique_together = (('user', 'course'),) verbose_name = "การลงทะเบียนเรียน" verbose_name_plural = "การลงทะเบียนเรียน" def __str__(self): return f"{self.user} enrolled in {self.course}" class LessonProgress(models.Model): user = models.ForeignKey( User, on_delete=models.CASCADE, related_name='lesson_progress', ) lesson = models.ForeignKey( "Lesson", on_delete=models.CASCADE, related_name='progress_records', ) completed = models.BooleanField(default=False) complete_at = models.DateTimeField(auto_now_add=True) class Meta: unique_together = (('user', 'lesson'),) verbose_name = "ความคืบหน้าบทเรียน" verbose_name_plural = "ความคืบหน้าบทเรียน" class Course(models.Model): title = models.CharField(max_length=200) description = models.TextField() published = models.BooleanField(default=False) created_at = models.DateTimeField(auto_now_add=True) class Meta: verbose_name = "หลักสูตร" verbose_name_plural = "หลักสูตร" def __str__(self): return self.title class Lesson(models.Model): course = models.ForeignKey( Course, related_name='lessons', on_delete=models.CASCADE ) title = models.CharField(max_length=200) content = models.TextField() order = models.PositiveIntegerField(default=0) class Meta: verbose_name = "บทเรียน" verbose_name_plural = "บทเรียน" def __str__(self): return f"{self.course.title} - {self.title}"