This commit is contained in:
51
docs/platform/11-navigation-system.md
Normal file
51
docs/platform/11-navigation-system.md
Normal file
@@ -0,0 +1,51 @@
|
||||
# 11. Система навигации
|
||||
|
||||
## Назначение
|
||||
Навигационная система управляет маршрутами витрины, меню и ссылками на основе bootstrap-конфигурации.
|
||||
|
||||
## Поведение системы
|
||||
- Frontend строит маршруты из конфигурации pages и navigation.
|
||||
- Языковой префикс маршрута задается локализационной конфигурацией.
|
||||
- Для категорий/товаров используются конфигурируемые route templates.
|
||||
|
||||
## Обязательные JSON-свойства
|
||||
- pages[].route.path
|
||||
- pages[].id
|
||||
- navigation.header или navigation.footer (минимум один набор)
|
||||
|
||||
## Опциональные свойства
|
||||
- route.exact
|
||||
- route.redirectTo
|
||||
- navigation.icon
|
||||
- navigation.order
|
||||
- navigation.visible
|
||||
|
||||
## Строгие правила
|
||||
- Маршруты страниц должны быть уникальны в рамках tenant.
|
||||
- Ссылка меню должна ссылаться на существующий маршрут или валидный внешний URL.
|
||||
- Нельзя хардкодить статические tenant-пути в компонентах.
|
||||
|
||||
## Пример navigation JSON
|
||||
```json
|
||||
{
|
||||
"navigation": {
|
||||
"header": [
|
||||
{ "id": "nav-home", "label": "Главная", "route": "/", "order": 1 },
|
||||
{ "id": "nav-catalog", "label": "Каталог", "route": "/catalog", "order": 2 }
|
||||
],
|
||||
"footer": [
|
||||
{ "id": "nav-privacy", "label": "Политика", "route": "/privacy-policy", "order": 1 }
|
||||
]
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
## Ответственность Frontend
|
||||
- Строить меню и роутинг из конфигурации.
|
||||
- Соблюдать локализацию маршрутов.
|
||||
- Обрабатывать недоступные маршруты через fallback-страницу.
|
||||
|
||||
## Ответственность Backend
|
||||
- Возвращать валидную карту маршрутов/навигации в bootstrap.
|
||||
- Поддерживать актуальность ссылок на статические страницы.
|
||||
- Контролировать tenant-специфичность навигации.
|
||||
Reference in New Issue
Block a user