## CMS Upgrade - Static pages now support unlimited bootstrap-driven entries under `staticPages`. - Each page may define slug, visibility, header/footer/sitemap flags, icon, order, translations, HTML and SEO metadata. - Frontend resolves pages dynamically from bootstrap instead of hardcoded page names. - Header and footer may consume the same static page registry without duplicating page definitions. # 12. Система статических страниц ## Назначение Система статических страниц управляет юридическими и информационными страницами (о компании, политика, доставка, возврат) через конфигурацию. ## Поведение системы - Список страниц и маршруты берутся из bootstrap/pages. - Контент может храниться как HTML/Markdown/структурированный JSON. - Frontend рендерит контент безопасно, с tenant-aware навигацией. ## Обязательные JSON-свойства - page.id - page.key - page.route.path - page.type = "static" - page.content.source ## Опциональные свойства - page.seoKey - page.visible - page.translations - page.lastUpdated ## Строгие правила - Запрещено хардкодить список статических страниц во frontend. - Контент должен быть изолирован по tenant. - HTML-контент должен проходить sanitation на frontend и/или backend. ## Пример JSON статической страницы ```json { "id": "page-privacy", "key": "privacy-policy", "type": "static", "route": { "path": "/privacy-policy", "exact": true }, "content": { "source": "cms", "contentType": "html", "value": "
...
" }, "visible": true } ``` ## Ответственность Frontend - Рендерить статические страницы по конфигурации маршрутов. - Безопасно обрабатывать HTML-контент. - Поддерживать локализованные версии страницы. ## Ответственность Backend - Поставлять tenant-specific статический контент. - Поддерживать версионирование и аудит контента. - Гарантировать валидность route/content связки.