# 09. Домен категорий ## Назначение Категорийный домен описывает иерархию каталога, правила вложенности и отображения категорий. ## Поведение системы - Frontend получает плоский список или дерево категорий из backend. - Для витрины строится дерево root -> children. - Выбор категории влияет на выборку товаров и хлебные крошки. ## Обязательные JSON-свойства категории - id - title - parentId (null для корня) - visible - priority ## Опциональные свойства - icon - image - itemCount - seo - translations ## Строгие правила - id категории должен быть уникальным в tenant. - Циклические ссылки parentId запрещены. - Невидимые категории не отображаются в публичной витрине. - Порядок показа определяется priority, затем id. ## Пример JSON категорий ```json { "data": [ { "id": 1, "title": "Электроника", "parentId": null, "visible": true, "priority": 1 }, { "id": 2, "title": "Смартфоны", "parentId": 1, "visible": true, "priority": 1 } ] } ``` ## Ответственность Frontend - Корректно строить дерево категорий и breadcrumbs. - Переходить в каталог категории по маршруту конфигурации. - Не показывать скрытые категории. ## Ответственность Backend - Поддерживать целостность иерархии категорий. - Возвращать категории в tenant-контексте. - Отдавать метрики itemCount при их поддержке.