from django.db import models class Product(models.Model): CONDITION_CHOICES = [ ('new', 'New'), ('returned', 'Returned'), ('like_new', 'Like New'), ] STATUS_CHOICES = [ ('available', 'Available'), ('in_box', 'In Box'), ('sold', 'Sold'), ] CATEGORY = [ ('Electronics', 'Electronics'), ('Home & Kitchen', 'In Home & Kitchen'), ('Beauty & Personal Care', 'Beauty & Personal Care'), ('Sports & Fitness', 'Sports & Fitness'), ('Books & stationery', 'Books & stationery'), ] name = models.CharField(max_length=200) brand = models.CharField(max_length=100, blank=True, null=True) category = models.CharField(max_length=100 , choices=CATEGORY , default='Electronics') original_price = models.DecimalField(max_digits=10, decimal_places=2) condition = models.CharField(max_length=20, choices=CONDITION_CHOICES, default='like_new') status = models.CharField(max_length=20, choices=STATUS_CHOICES, default='available') seller_name = models.CharField(max_length=150, blank=True, null=True) def __str__(self): return f"{self.name} ({self.brand})" class MysteryBox(models.Model): title = models.CharField(max_length=200) description = models.TextField() image = models.ImageField(null=True , blank= True) price = models.DecimalField(max_digits=10, decimal_places=2) category = models.CharField(max_length=100, default='mixed') products = models.ManyToManyField(Product, blank=True) stock_quantity = models.PositiveIntegerField(default=0) is_featured = models.BooleanField(default=False) def __str__(self): return self.title @property def imageURL(self): try: url=self.image.url except: url='' return url