from django.db import models from accounts.models import CustomUser class PaymentMethod(models.Model): """ Способ оплаты заказа. Справочник для управления доступными методами оплаты. """ # Код для программного доступа code = models.SlugField( unique=True, max_length=50, verbose_name="Код способа оплаты", help_text="Уникальный идентификатор (например: 'cash_to_courier', 'card_to_courier')" ) # Отображаемое название name = models.CharField( max_length=100, verbose_name="Название способа оплаты" ) # Описание description = models.TextField( blank=True, verbose_name="Описание", help_text="Дополнительная информация о способе оплаты" ) # Активность is_active = models.BooleanField( default=True, verbose_name="Активен", help_text="Отключенные способы оплаты не отображаются при создании заказа" ) # Порядок отображения order = models.PositiveIntegerField( default=0, verbose_name="Порядок отображения" ) # Системный флаг is_system = models.BooleanField( default=False, verbose_name="Системный", help_text="Системные способы оплаты нельзя удалить через интерфейс" ) # Аудит created_at = models.DateTimeField(auto_now_add=True) updated_at = models.DateTimeField(auto_now=True) created_by = models.ForeignKey( CustomUser, on_delete=models.SET_NULL, null=True, blank=True, related_name='created_payment_methods', verbose_name="Создано" ) class Meta: verbose_name = "Способ оплаты" verbose_name_plural = "Способы оплаты" ordering = ['order', 'name'] indexes = [ models.Index(fields=['code']), models.Index(fields=['is_active']), models.Index(fields=['order']), ] def __str__(self): return self.name