""" Модели для маппинга категорий на внешние площадки. """ from django.db import models class IntegrationCategoryMapping(models.Model): """ Маппинг внутренней категории на внешнюю категорию маркетплейса. Позволяет связать категории товаров с их аналогами на внешних площадках (Recommerce, WooCommerce и др.). """ INTEGRATION_CHOICES = [ ('recommerce', 'Recommerce'), ('woocommerce', 'WooCommerce'), ] category = models.ForeignKey( 'products.ProductCategory', on_delete=models.CASCADE, related_name='integration_mappings', verbose_name="Категория" ) integration_type = models.CharField( max_length=20, choices=INTEGRATION_CHOICES, verbose_name="Интеграция", db_index=True ) external_category_sku = models.CharField( max_length=100, verbose_name="Артикул категории во внешней системе", help_text="SKU или ID категории на внешней площадке" ) external_category_name = models.CharField( max_length=200, blank=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 = "Маппинги категорий" unique_together = [['category', 'integration_type']] indexes = [ models.Index(fields=['integration_type', 'external_category_sku']), ] def __str__(self): return f"{self.category.name} → {self.get_integration_type_display()}:{self.external_category_sku}"