# 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-специфичность навигации.