74 lines
1.9 KiB
Python
74 lines
1.9 KiB
Python
from django.db import models
|
||
from .categories import ProductTag
|
||
|
||
|
||
class BouquetName(models.Model):
|
||
"""
|
||
Модель для хранения предопределенных названий букетов с метаинформацией
|
||
"""
|
||
name = models.CharField(
|
||
max_length=100,
|
||
unique=True,
|
||
verbose_name="Название букета"
|
||
)
|
||
|
||
# Категории характеристик
|
||
color_tags = models.ManyToManyField(
|
||
ProductTag,
|
||
blank=True,
|
||
related_name='bouquet_names_by_color',
|
||
verbose_name="Цветные теги"
|
||
)
|
||
|
||
occasion_tags = models.ManyToManyField(
|
||
ProductTag,
|
||
blank=True,
|
||
related_name='bouquet_names_by_occasion',
|
||
verbose_name="Теги по поводу"
|
||
)
|
||
|
||
style_tags = models.ManyToManyField(
|
||
ProductTag,
|
||
blank=True,
|
||
related_name='bouquet_names_by_style',
|
||
verbose_name="Теги по стилю"
|
||
)
|
||
|
||
language = models.CharField(
|
||
max_length=10,
|
||
default='russian',
|
||
verbose_name="Язык"
|
||
)
|
||
|
||
is_approved = models.BooleanField(
|
||
default=False,
|
||
verbose_name="Одобрено для использования"
|
||
)
|
||
|
||
usage_count = models.PositiveIntegerField(
|
||
default=0,
|
||
verbose_name="Количество использований"
|
||
)
|
||
|
||
generated_at = models.DateTimeField(
|
||
auto_now_add=True,
|
||
verbose_name="Дата генерации"
|
||
)
|
||
|
||
approved_at = models.DateTimeField(
|
||
null=True,
|
||
blank=True,
|
||
verbose_name="Дата одобрения"
|
||
)
|
||
|
||
class Meta:
|
||
verbose_name = "Название букета"
|
||
verbose_name_plural = "Названия букетов"
|
||
indexes = [
|
||
models.Index(fields=['language', 'is_approved']),
|
||
models.Index(fields=['usage_count']),
|
||
]
|
||
|
||
def __str__(self):
|
||
return self.name
|