from django.db import models from django.utils.translation import gettext_lazy as _ from rules.contrib.models import RulesModel from outbo.apps.core.models import TimestampableDeletableMixin from outbo.apps.photobriefing.enums import ChoiceRole class BriefItemChoice(TimestampableDeletableMixin, RulesModel): class Meta: unique_together = (("brief", "category", "role"),) brief = models.ForeignKey( verbose_name=_("brief"), to="Brief", on_delete=models.CASCADE, related_name="choices", related_query_name="choice", ) category = models.ForeignKey( verbose_name=_("category"), to="Category", on_delete=models.CASCADE, related_name="choices+", related_query_name="choice", ) role = models.CharField( max_length=30, choices=[(role, role.value) for role in ChoiceRole], default=ChoiceRole.INVALID, editable=False, ) item = models.ForeignKey( verbose_name=_("item"), to="BriefItem", on_delete=models.CASCADE, related_name="choices", related_query_name="choice", )