This commit is contained in:
49
docs/platform/09-category-domain.md
Normal file
49
docs/platform/09-category-domain.md
Normal file
@@ -0,0 +1,49 @@
|
||||
# 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 при их поддержке.
|
||||
Reference in New Issue
Block a user