ADR-013: Каскадная активация категорий и сортировка товаров
Статус
accepted
Контекст
При верификации BR 1.7 обнаружены два расхождения между слоями документации. Фиксируем решения. Фронтенд реализуется с расчётом на эти правки бэкенда.
Замечание 1: Каскадная активация категорий
Проблема
BR 1.7 и бизнес-спека описывают: “Обратная активация — поштучно или каскадно (выбор в UI)“. Но API (PATCH /categories/{id}) и фронтенд-спека (Каталог — Категории) реализуют только поштучную активацию. Нет параметра cascade в API и нет UI-выбора.
Деактивация при этом каскадная — это работает корректно.
Решение
Фронтенд реализует каскадную активацию через модалку с выбором:
- При активации категории с дочерними → модалка: “Активировать только эту категорию или вместе с подкатегориями?”
- Два варианта: “Только эту” / “Вместе с подкатегориями”
Бэкенд должен поддержать: параметр cascade: boolean в PATCH /api/v1/categories/{id} при is_active: true. Если cascade: true → активировать категорию + все дочерние рекурсивно.
Фронтенд реализован с расчётом на этот параметр
До реализации бэкендом — фронт отправляет
cascade: true/false, бэкенд может игнорировать (активирует только текущую). После доработки бэкенда — заработает полностью.
Замечание 2: Параметр sort в GET /products
Проблема
Фронтенд-спека (Каталог — Товары) описывает сортировку: sort=name_asc / sort=name_desc. Но API-контракт GET /api/v1/products не содержит параметр sort.
Решение
Фронтенд отправляет sort=name_asc / sort=name_desc как query parameter.
Бэкенд должен поддержать: параметр sort в GET /api/v1/products с значениями name_asc (default), name_desc, created_at_desc.
Фронтенд реализован с расчётом на этот параметр
До реализации бэкендом — сортировка не работает (бэкенд возвращает в дефолтном порядке). После доработки — заработает.