from django.db import models from django_core.models.base import AbstractBaseModel from django.utils.translation import gettext_lazy as _ from django.contrib.auth import get_user_model from core.apps.api.choices.ad_type import AdType, AdCategoryType class AdModel(AbstractBaseModel): user = models.ForeignKey(get_user_model(), on_delete=models.CASCADE, verbose_name=_("User"), related_name="ad") name = models.CharField(verbose_name=_("Name"), max_length=255) ad_type = models.CharField(verbose_name=_("Type"), max_length=255, choices=AdType) category = models.ForeignKey("api.Category", on_delete=models.CASCADE, verbose_name=_("Category")) ad_category_type = models.CharField(verbose_name=_("Type"), max_length=255, choices=AdCategoryType) price = models.DecimalField(verbose_name=_("Price"), max_digits=10, decimal_places=2, null=True, blank=True) is_available = models.BooleanField(verbose_name=_("Is available"), default=True, blank=True, null=True) physical_product = models.BooleanField(verbose_name=_("Physical product"), default=False) plan = models.ForeignKey("api.AdTopPlan", on_delete=models.CASCADE, verbose_name=_("Plan")) tags = models.ManyToManyField("api.Tags", verbose_name=_("Tags")) def __str__(self): return str(self.pk) class Meta: db_table = "ad" verbose_name = _("Ad") verbose_name_plural = _("Ads") class Color(AbstractBaseModel): name = models.CharField(verbose_name=_("Name"), max_length=255) def __str__(self): return str(self.pk) class Meta: db_table = "color" verbose_name = _("Color") verbose_name_plural = _("Colors")