BR 1.10 — Catalog Service
Миграции
-
PL-CS-01: Создать таблицу
price_lists- Колонки: id, franchise_id, name, is_default, status, created_at, updated_at, deleted_at
- UNIQUE (franchise_id, name) WHERE deleted_at IS NULL
-
PL-CS-02:Создать таблицу— УДАЛЕНО: версионирование прейскурантов убраноprice_list_versions -
PL-CS-03: Пересоздать таблицу
price_list_items(без версий)- Колонки: id, price_list_id FK, product_id FK, price
- UNIQUE (price_list_id, product_id)
-
PL-CS-04: Пересоздать таблицу
price_list_modifier_items(без версий)- Колонки: id, price_list_id FK, modifier_option_id FK, price
- UNIQUE (price_list_id, modifier_option_id)
-
PL-CS-05: Миграция данных — перенести base_price из products/modifier_options в дефолтный прейскурант
- Создать дефолтный price_list для каждой franchise
- Скопировать base_price каждого товара/опции напрямую в price_list_items/modifier_items (без версий)
-
PL-CS-06: Удалить base_price из products, product_versions, modifier_options
- ALTER TABLE … DROP COLUMN base_price CASCADE
Entity / Repository
-
PL-CS-07: Entity
PriceList+PriceListRepository- findByFranchiseIdAndNameNotDeleted, findByFranchiseIdAndIsDefaultTrue, findFiltered (пагинация)
-
PL-CS-08:Entity— УДАЛЕНО: версионирование убраноPriceListVersion -
PL-CS-09: Entity
PriceListItem+PriceListItemRepository- findByPriceListId, batch save
-
PL-CS-10: Entity
PriceListModifierItem+PriceListModifierItemRepository- findByPriceListId, batch save
Service
-
PL-CS-11:
PriceListService— CRUD справочника- create: unique name, is_default logic (снять с предыдущего)
- update: partial (name, is_default, status)
- delete: проверки (не default, не назначен на ТТ)
- list: пагинация, поиск по имени + store_count
-
PL-CS-12:
PriceListItemService— управление ценами (без версий)- getPrices: загрузить items + modifier_items для прейскуранта
- batchUpdateItems: batch update цен товаров (мгновенное применение)
- batchUpdateModifierItems: batch update цен опций (мгновенное применение)
Controller
-
PL-CS-13:
PriceListController— 5 справочник endpoints- GET /price-lists, GET /price-lists/{id}, POST, PATCH, DELETE
-
PL-CS-14:
PriceListItemController— 3 endpoints цен (без версий)- GET /price-lists/{id}/items
- PATCH /price-lists/{id}/items
- PATCH /price-lists/{id}/modifier-items
Обновление существующего кода
-
PL-CS-15:— УДАЛЕНО: прейскуранты не привязаны к версиям каталогаCatalogVersionService.createDraft()каскадное создание draft price_list_versions -
PL-CS-16:— УДАЛЕНОCatalogVersionService.publish()каскадная публикация price_list_versions -
PL-CS-17:— УДАЛЕНОCatalogVersionService.deleteDraft()каскадное удаление -
PL-CS-18:
ProductService— убрать base_price из createProduct/updateProduct/DTO -
PL-CS-19:
ModifierGroupService— убрать base_price из options в create/update/response -
PL-CS-20: Убрать base_price из всех response DTOs: ProductResponse, ProductListItem, ProductVersionResponse, ModifierOptionResponse, CatalogCompositionProductResponse