BR 1.9 — Admin Franchise
BFF (bff/)
-
TC-F01: Proxy эндпоинтов Warehouse Service (техкарты)
GET /api/v1/warehouse/tech-cards→ Warehouse ServiceGET /api/v1/warehouse/tech-cards/:id→ Warehouse ServicePOST /api/v1/warehouse/tech-cards→ Warehouse ServicePATCH /api/v1/warehouse/tech-cards/:id→ Warehouse ServiceDELETE /api/v1/warehouse/tech-cards/:id→ Warehouse Service
-
TC-F02: Proxy эндпоинтов строк рецепта
POST /api/v1/warehouse/tech-cards/:id/items→ Warehouse ServicePATCH /api/v1/warehouse/tech-cards/:id/items/:itemId→ Warehouse ServiceDELETE /api/v1/warehouse/tech-cards/:id/items/:itemId→ Warehouse Service
-
TC-F03: Proxy эндпоинта себестоимости
GET /api/v1/warehouse/tech-cards/:id/cost→ Warehouse Service
-
TC-F04: Proxy эндпоинтов конвертации единиц
GET /api/v1/warehouse/unit-conversions→ Warehouse ServicePOST /api/v1/warehouse/unit-conversions→ Warehouse ServicePATCH /api/v1/warehouse/unit-conversions/:id→ Warehouse Service
Shared types (shared/)
- TC-F05: Добавить типы для техкарт
TechCard,TechCardListItem,RecipeItem,TechCardCostCreateTechCardRequest,UpdateTechCardRequestAddRecipeItemRequest,UpdateRecipeItemRequestUnitConversion,CreateUnitConversionRequest- Обновить
ProductType— добавитьingredient
Web — Таб “Техкарта” (web/)
-
TC-F06: API client для Warehouse Service
getTechCards(productId, productVersion)getTechCardById(id)createTechCard(data)updateTechCard(id, data)deleteTechCard(id)addRecipeItem(techCardId, data)updateRecipeItem(techCardId, itemId, data)deleteRecipeItem(techCardId, itemId)getTechCardCost(id)- Unit conversion CRUD
-
TC-F07: Таб “Техкарта” в ProductViewPage
- Виден только для type=dish
- Загрузка техкарт для выбранной версии товара
- Состояние “Техкарта не создана” + кнопка “Создать”
- Шапка: выход, себестоимость, статус
- Подчинён переключателю версий (BR 1.8.2) — read-only для старых
-
TC-F08: Per-size вкладки внутри таба
- Если у версии есть size-модификаторы → вкладки per-size
- Каждая вкладка = отдельная техкарта с modifier_option_id
- Если нет size-модификаторов → одна базовая техкарта
-
TC-F09: Таблица ингредиентов
- Колонки: ингредиент, тип (бейдж), брутто, нетто, % потерь, стоимость, действия
- Полуфабрикат (type=dish) — кликабельная ссылка на его карточку
- Inline-редактирование: брутто/нетто/% потерь с авто-пересчётом
-
TC-F10: Модалка “Добавить ингредиент”
- Поиск по ингредиентам + полуфабрикатам (
GET /products?type=ingredient+?type=dish) - Кнопка “Создать ингредиент” → быстрая форма (название, ед. изм.) →
POST /productstype=ingredient - Заполнение: брутто, нетто, единица, % потерь
- API:
POST /tech-cards/{id}/items - Ошибка CIRCULAR_REFERENCE → toast
- Поиск по ингредиентам + полуфабрикатам (
-
TC-F11: Удаление ингредиента
- Модалка подтверждения
- API:
DELETE /tech-cards/{id}/items/{itemId}
-
TC-F12: Технология приготовления
- Textarea под таблицей
- Auto-save при blur →
PATCH /tech-cards/{id}с cooking_description
-
TC-F13: Себестоимость
- Загрузка
GET /tech-cards/{id}/cost - Показ total_cost в шапке
- Показ item_cost в колонке таблицы
- Warnings (нет цены) → иконка предупреждения
- Загрузка