36 lines
1.1 KiB
Python
36 lines
1.1 KiB
Python
from django.db import models
|
|
from django_core.models.base import AbstractBaseModel
|
|
from django.utils.translation import gettext_lazy as _
|
|
|
|
|
|
class AdImageModel(AbstractBaseModel):
|
|
ad = models.ForeignKey(
|
|
"api.AdModel",
|
|
on_delete=models.CASCADE,
|
|
verbose_name=_("Ad"),
|
|
related_name="images"
|
|
)
|
|
ad_variant = models.ForeignKey(
|
|
"api.AdVariantModel",
|
|
on_delete=models.CASCADE,
|
|
verbose_name=_("Ad Variant"),
|
|
related_name="images",
|
|
null=True,
|
|
blank=True
|
|
)
|
|
image = models.ImageField(_("Image"), upload_to="ads/images/")
|
|
order = models.PositiveIntegerField(_("Display Order"), default=0)
|
|
is_primary = models.BooleanField(_("Is Primary"), default=False)
|
|
|
|
def __str__(self):
|
|
return f"Image for {self.ad.name}"
|
|
|
|
class Meta:
|
|
db_table = "ad_images"
|
|
verbose_name = _("Ad Image")
|
|
verbose_name_plural = _("Ad Images")
|
|
ordering = ["order", "-created_at"]
|
|
indexes = [
|
|
models.Index(fields=["ad", "is_primary"]),
|
|
]
|