BR 1.7.2 — Admin Franchise (BFF + Web)

Конструктор каталога: двухпанельный UI, убрать раздел “Категории”, versioned category API.

Контракты


Задачи

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

  • Proxy: GET /catalog/versions/:id/categories → Catalog Service
  • Proxy: POST /catalog/versions/:id/categories → Catalog Service
  • Proxy: PATCH /catalog/versions/:id/categories/:categoryId → Catalog Service
  • Proxy: DELETE /catalog/versions/:id/categories/:categoryId → Catalog Service
  • Убраны standalone category proxy routes

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

  • Product, ProductListItem — убрано category_id, category_name
  • CreateProductRequest, UpdateProductRequest — убрано category_id
  • CatalogCompositionProduct — добавлено category_id, category_name
  • Добавлены типы: VersionCategory, CreateVersionCategoryRequest, UpdateVersionCategoryRequest, MoveProductCategoryRequest

Web: Товары

  • ProductListPage — убрана колонка “Категория”, убран фильтр
  • ProductViewPage — убрана “Категория” из карточки
  • ProductCreatePage — убрано поле “Категория”
  • ProductEditPage — убрано поле “Категория”

Web: Sidebar + Routing

  • Sidebar — убран пункт “Категории”
  • Router — убран route /catalog/categories, CategoriesPage → redirect
  • CategoriesPage.tsx — заменён на redirect к /catalog/versions

Web: Версии — конструктор

  • VersionViewPage — двухпанельный layout (split view, 240px + flex:1)
  • Левая панель: дерево категорий из versioned API
  • Левая панель: inline CRUD (добавить/переименовать/удалить/toggle active) — draft only
  • Левая панель: “Без категории” — спец. пункт
  • Правая панель: товары выбранной категории
  • Добавить товар — с category_id текущей категории
  • Перемещение товара — модалка выбора категории + PATCH
  • Просмотр published/archived — двухпанельный readonly

Web: API client (web/src/api/catalog.ts)

  • Добавлены: getVersionCategories, createVersionCategory, updateVersionCategory, deleteVersionCategory, moveProductCategory
  • Убраны standalone category functions