from django.db import models from utils.models import ProjectBaseMixin, BaseAttributes from django.contrib.postgres.fields import JSONField, ArrayField from django.utils.translation import gettext_lazy as _ class NewsType(models.Model): """NewsType model.""" name = models.CharField(_('name'), max_length=250) class News(BaseAttributes): """News model.""" news_type = models.ForeignKey( NewsType, verbose_name=_('news type'), on_delete=models.CASCADE) title = JSONField( _('title'), null=True, blank=True, default=None, help_text='{"en":"some text"}') subtitle = JSONField( _('subtitle'), null=True, blank=True, default=None, help_text='{"en":"some text"}' ) description = JSONField( _('subtitle'), null=True, blank=True, default=None, help_text='{"en":"some text"}' ) start = models.DateTimeField(_('start')) end = models.DateTimeField(_('end')) playlist = models.IntegerField(_('playlist')) address = models.ForeignKey( 'location.Address', verbose_name=_('address'), blank=True, null=True, default=None, on_delete=models.CASCADE) # TODO: metadata_keys - описание ключей для динамического построения полей метаданных # TODO: metadata_values - Описание значений для динамических полей из MetadataKeys class Meta: verbose_name = _('news') verbose_name_plural = _('news') def __str__(self): return f'news: {self.id}'