BR 1.11 — Admin Franchise (фронт)

Shared types

  • Добавить Ingredient тип (id, name, description, unit_of_measure, status)
  • Добавить CreateIngredientRequest, UpdateIngredientRequest
  • Обновить типы RecipeItem: ingredient_id + semi_finished_product_id + item_type
  • Убрать ingredient из ProductType (оставить dish/good)

API

  • Добавить web/src/api/warehouse.ts — функции для ingredients CRUD (getIngredients, createIngredient)
  • Обновить API вызовы в tech card items — ingredient_id вместо ingredient_product_id

BFF

  • Добавить proxy routes для /ingredients → Warehouse Service

Pages

  • ProductViewPage.tsx — таб Техкарта, модалка “Добавить ингредиент”:
    • Поиск по GET /api/v1/admin/ingredients?search=... вместо GET /api/v1/admin/catalog/products?type=ingredient
    • “Создать ингредиент” → POST /api/v1/admin/ingredients
    • Поиск полуфабрикатов: GET /api/v1/admin/catalog/products?type=dish — оставить
    • Отправка: ingredient_id или semi_finished_product_id
  • ProductViewPage.tsx — таблица ингредиентов: отображать item_type (Ингредиент/Полуфабрикат)
  • ProductCreatePage.tsx — убрать ingredient из селекта типа (оставить dish/good)
  • ProductListPage.tsx — убрать ingredient бейдж если был