BR 1.7.1 — Admin Franchise (BFF + Web)

Обновление BFF proxy и Web-экранов для независимого версионирования и ручного управления черновиком.

Контракты


Задачи

BFF (bff/src/routes/catalog.ts)

  • Proxy: POST /catalog/versions → Catalog Service
  • Proxy: DELETE /catalog/versions/:id → Catalog Service
  • Proxy: POST /catalog/versions/:id/products → Catalog Service
  • Proxy: DELETE /catalog/versions/:id/products/:productId → Catalog Service
  • Proxy: PATCH /catalog/versions/:id/products/:productId → Catalog Service
  • Proxy: GET /products/:id/versions → Catalog Service

Shared types (shared/src/types/catalog.ts)

  • Добавить интерфейс ProductVersion (version, name, base_price, …, catalog_versions[])
  • Добавить интерфейс CatalogCompositionProduct (product_id, product_version, name, …)
  • Обновить CatalogVersion — добавить category_count

Web: Товары

  • ProductViewPage — таб “Версии” с таблицей из GET /products/:id/versions (Franchise only)
  • ProductCreatePage — toast “Товар создан”

Web: Категории

  • CategoriesPage — баннер состояния (draft → editable, published → readonly)
  • CategoriesPage — при отсутствии draft: скрыть inline-actions и “Добавить корневую”
  • Draft detection через getCatalogVersions() → filter status=draft

Web: Версии

  • VersionListPage — кнопка “Создать черновик” + модалка + обработка ошибок
  • VersionListPage — кнопка “Удалить черновик” + модалка
  • VersionListPage — колонка “Категорий” (category_count)
  • VersionListPage — empty state “Версий каталога пока нет.”
  • VersionViewPage — draft: editable режим (управление составом)
  • VersionViewPage — “Добавить товар” модалка (поиск + выбор версии)
  • VersionViewPage — переключение версии товара (dropdown)
  • VersionViewPage — “Убрать” товар + подтверждение