from django.db import models from phonenumber_field.modelfields import PhoneNumberField class Shop(models.Model): """ Модель магазина/пункта самовывоза для цветочного магазина. """ name = models.CharField( max_length=200, verbose_name="Название магазина" ) description = models.TextField( blank=True, null=True, verbose_name="Описание", help_text="Дополнительная информация о магазине" ) # Адрес магазина street = models.CharField( max_length=255, blank=True, null=True, verbose_name="Улица" ) building_number = models.CharField( max_length=20, blank=True, null=True, verbose_name="Номер здания" ) # Контактная информация phone = PhoneNumberField( blank=True, null=True, verbose_name="Телефон", help_text="Контактный телефон магазина" ) email = models.EmailField( blank=True, null=True, verbose_name="Email" ) # Статусы и настройки is_active = models.BooleanField( default=True, verbose_name="Активен", help_text="Работает ли магазин в данный момент" ) is_pickup_point = models.BooleanField( default=True, verbose_name="Пункт самовывоза", help_text="Доступен ли магазин для самовывоза заказов" ) # Временные метки created_at = models.DateTimeField( auto_now_add=True, verbose_name="Дата создания" ) updated_at = models.DateTimeField( auto_now=True, verbose_name="Дата обновления" ) class Meta: verbose_name = "Магазин" verbose_name_plural = "Магазины" indexes = [ models.Index(fields=['is_active']), models.Index(fields=['is_pickup_point']), ] ordering = ['name'] def __str__(self): if self.street and self.building_number: return f"{self.name} ({self.full_address})" return self.name @property def full_address(self): """Полный адрес магазина""" if self.street and self.building_number: return f"{self.street}, {self.building_number}" return ""