MOD-01: Shared типы + BFF прокси + API client
Что сделать
Создать shared-типы для модификаторов, BFF proxy для 7 modifier-group endpoints + 3 attachment endpoints, API client на фронте.
Смотри спеку
Конкретно
Shared types (shared/src/types/modifiers.ts) — новый файл
ModifierGroupType—"group" | "single"ModifierOption—id,name,base_price,min_amount,max_amount,default_amount,display_orderModifierGroup—id,name,type(ModifierGroupType),min_amount,max_amount,status,options(ModifierOption[]),created_at,updated_atModifierGroupListItem—id,name,type,option_count,statusCreateModifierGroupRequest—name,type,min_amount,max_amount,options(без id/display_order)UpdateModifierGroupRequest—name,type,min_amount,max_amount,options(без id/display_order)ModifierAttachment—modifier_group_id,binding_type,modifier_group_name,min_override,max_override
Версионирование убрано
ModifierGroupVersionудалён.versionубран изModifierGroupиModifierGroupListItem. Изменения мгновенные.
Export (shared/src/index.ts)
- Добавить
export * from './types/modifiers' pnpm --filter @erp/shared build
BFF proxy (bff/src/routes/modifiers.ts) — новый файл
7 proxy endpoints для modifier groups:
GET /modifier-groups→ Catalog ServiceGET /modifier-groups/:id→ Catalog ServicePOST /modifier-groups→ Catalog ServicePATCH /modifier-groups/:id→ Catalog ServiceDELETE /modifier-groups/:id→ Catalog ServicePOST /modifier-groups/:id/restore→ Catalog ServiceGET /modifier-groups/:id/versions→ Catalog Service
Зарегистрировать в bff/src/server.ts с prefix /api/v1/admin/modifier-groups.
BFF proxy (bff/src/routes/catalog.ts) — дополнить
3 proxy endpoints для привязки модификаторов:
POST /catalog/versions/:id/products/:productId/modifiers→ Catalog ServiceDELETE /catalog/versions/:id/products/:productId/modifiers/:groupId→ Catalog ServicePATCH /catalog/versions/:id/products/:productId/modifiers/:groupId→ Catalog Service
API client (web/src/api/modifiers.ts) — новый файл
getModifierGroups(params)— список с фильтрами и пагинациейgetModifierGroup(id)— одна группаcreateModifierGroup(data)— созданиеupdateModifierGroup(id, data)— обновлениеdeleteModifierGroup(id)— удалениеrestoreModifierGroup(id)— восстановлениеgetModifierGroupVersions(id)— история версий
API client (web/src/api/catalog.ts) — дополнить
attachModifier(versionId, productId, data)— привязать модификаторdetachModifier(versionId, productId, groupId)— отвязать модификаторupdateModifierAttachment(versionId, productId, groupId, data)— обновить override
Файлы
shared/src/types/modifiers.tsshared/src/index.tsbff/src/routes/modifiers.tsbff/src/server.tsbff/src/routes/catalog.tsweb/src/api/modifiers.tsweb/src/api/catalog.ts
Зависит от
Нет зависимостей.