TC-01: Shared типы + BFF прокси + API client
Что сделать
Добавить shared-типы для техкарт, BFF proxy для Warehouse Service и API client в web.
Смотри спеку
Секция “Таб Техкарта” в Каталог — Товары, API в Warehouse Service API.
Конкретно
Shared types (shared/)
TechCard: id, franchise_id, product_id, product_version, modifier_option_id, modifier_option_name, name, output_weight, output_unit, cooking_description, status, items[], created_at, updated_atTechCardListItem: id, product_id, product_version, modifier_option_id, modifier_option_name, name, output_weight, output_unit, status, item_count, created_atRecipeItem: id, ingredient_product_id, ingredient_name, ingredient_type, gross_weight, net_weight, cold_loss_percent, hot_loss_percent, unit_of_measure, sort_orderTechCardCost: tech_card_id, total_cost, items[{ingredient_product_id, ingredient_name, net_weight, unit_of_measure, average_cost_per_unit, item_cost, is_semi_finished}], warnings[]CreateTechCardRequest,UpdateTechCardRequest,AddRecipeItemRequest,UpdateRecipeItemRequestUnitConversion,CreateUnitConversionRequest- Обновить
ProductType: добавить"ingredient"
BFF proxy (bff/)
Новый файл bff/src/routes/warehouse.ts:
GET /api/v1/admin/warehouse/tech-cards→ Warehouse :3008GET /api/v1/admin/warehouse/tech-cards/:id→ WarehousePOST /api/v1/admin/warehouse/tech-cards→ WarehousePATCH /api/v1/admin/warehouse/tech-cards/:id→ WarehouseDELETE /api/v1/admin/warehouse/tech-cards/:id→ WarehousePOST /api/v1/admin/warehouse/tech-cards/:id/items→ WarehousePATCH /api/v1/admin/warehouse/tech-cards/:id/items/:itemId→ WarehouseDELETE /api/v1/admin/warehouse/tech-cards/:id/items/:itemId→ WarehouseGET /api/v1/admin/warehouse/tech-cards/:id/cost→ WarehouseGET /api/v1/admin/warehouse/unit-conversions→ WarehousePOST /api/v1/admin/warehouse/unit-conversions→ WarehousePATCH /api/v1/admin/warehouse/unit-conversions/:id→ Warehouse
Зарегистрировать в bff/src/server.ts.
API client (web/)
Новый файл web/src/api/warehouse.ts:
getTechCards(productId, productVersion)— GET с query paramsgetTechCardById(id)— GETcreateTechCard(data)— POSTupdateTechCard(id, data)— PATCHdeleteTechCard(id)— DELETEaddRecipeItem(techCardId, data)— POSTupdateRecipeItem(techCardId, itemId, data)— PATCHdeleteRecipeItem(techCardId, itemId)— DELETEgetTechCardCost(id)— GETgetUnitConversions(productId)— GETcreateUnitConversion(data)— POSTupdateUnitConversion(id, data)— PATCH
Файлы
shared/src/types/warehouse.ts— создатьshared/src/types/catalog.ts— обновить ProductTypeshared/src/index.ts— добавить экспортbff/src/routes/warehouse.ts— создатьbff/src/server.ts— зарегистрироватьweb/src/api/warehouse.ts— создать
Зависит от
— (первая задача)