from django.db import models from django.contrib.auth.models import User class Instructor(models.Model): name = models.CharField(max_length=255) title = models.CharField(max_length=255, help_text="e.g. Professor of Computer Science") bio = models.TextField() expertise = models.CharField(max_length=255) photo_url = models.URLField(blank=True, null=True) def __str__(self): return self.name class Course(models.Model): LEVEL_CHOICES = [ ('Beginner', 'Beginner'), ('Intermediate', 'Intermediate'), ('Advanced', 'Advanced'), ] title = models.CharField(max_length=255) slug = models.SlugField(unique=True) description = models.TextField() instructor = models.ForeignKey(Instructor, on_delete=models.CASCADE, related_name='courses') price = models.DecimalField(max_digits=10, decimal_places=2) duration = models.CharField(max_length=100, help_text="e.g. 10 weeks") level = models.CharField(max_length=50, choices=LEVEL_CHOICES) image_url = models.URLField(blank=True, null=True) created_at = models.DateTimeField(auto_now_add=True) def __str__(self): return self.title class WishlistItem(models.Model): user = models.ForeignKey(User, on_delete=models.CASCADE, related_name='wishlist') course = models.ForeignKey(Course, on_delete=models.CASCADE) added_at = models.DateTimeField(auto_now_add=True) class Meta: unique_together = ('user', 'course') def __str__(self): return f"{self.user.username} - {self.course.title}"