"""
Products models package.
Импортирует все модели для обеспечения совместимости с Django.

Структура после рефакторинга:
- base.py: SKUCounter, BaseProductEntity (абстрактный базовый класс)
- managers.py: ActiveManager, SoftDeleteManager, SoftDeleteQuerySet
- categories.py: ProductCategory, ProductTag
- variants.py: ProductVariantGroup, ProductVariantGroupItem
- products.py: Product
- kits.py: ProductKit, KitItem, KitItemPriority
- photos.py: BasePhoto (abstract), ProductPhoto, ProductKitPhoto, ProductCategoryPhoto

Бизнес-логика вынесена в:
- services/: slug_service, product_service, kit_pricing, kit_availability
- validators/: kit_validators
"""

# Импортируем менеджеры (используются другими моделями)
from .managers import ActiveManager, SoftDeleteManager, SoftDeleteQuerySet

# Базовые модели
from .base import SKUCounter, BaseProductEntity

# Категории и теги
from .categories import ProductCategory, ProductTag

# Группы вариантов
from .variants import ProductVariantGroup, ProductVariantGroupItem

# Продукты
from .products import Product, CostPriceHistory

# Комплекты и вариативные товары
from .kits import (
    ProductKit, KitItem, KitItemPriority,
    ConfigurableProduct, ConfigurableProductOption, ConfigurableProductAttribute, ConfigurableProductOptionAttribute,
)

# Атрибуты
from .attributes import ProductAttribute, ProductAttributeValue

# Единицы измерения
from .units import UnitOfMeasure, ProductSalesUnit

# Фотографии
from .photos import BasePhoto, ProductPhoto, ProductKitPhoto, ProductCategoryPhoto, PhotoProcessingStatus

# Задачи импорта
from .import_job import ProductImportJob

# Названия букетов
from .bouquet_names import BouquetName

# Явно указываем, что экспортируется при импорте *
__all__ = [
    # Managers
    'ActiveManager',
    'SoftDeleteManager',
    'SoftDeleteQuerySet',

    # Base
    'SKUCounter',
    'BaseProductEntity',

    # Categories
    'ProductCategory',
    'ProductTag',

    # Variants
    'ProductVariantGroup',
    'ProductVariantGroupItem',

    # Products
    'Product',
    'CostPriceHistory',

    # Kits & Configurable Products
    'ProductKit',
    'KitItem',
    'KitItemPriority',
    'ConfigurableProduct',
    'ConfigurableProductOption',
    'ConfigurableProductAttribute',
    'ConfigurableProductOptionAttribute',

    # Attributes
    'ProductAttribute',
    'ProductAttributeValue',

    # Units
    'UnitOfMeasure',
    'ProductSalesUnit',

    # Photos
    'BasePhoto',
    'ProductPhoto',
    'ProductKitPhoto',
    'ProductCategoryPhoto',
    'PhotoProcessingStatus',
    
    # Import Jobs
    'ProductImportJob',
    
    # Bouquet Names
    'BouquetName',
]
