BR 1.16 — Catalog Service

Статус: done

Задачи

1. Добавить параметр store_id в GET /internal/catalog/menu

  • Опциональный @RequestParam("store_id") — обратно совместимо
  • Без store_id — поведение не меняется

2. Фильтрация по стоп-листам

  • Загрузка ProductStopList и CategoryStopList по store_id
  • Исключение категорий из стоп-листа
  • Исключение товаров из стоп-листа (прямой + через категорию)

3. Модификаторы товаров

  • Batch-загрузка ProductModifier для всех товаров (findByProductIdIn)
  • Для каждого binding — загрузка ModifierGroup и ModifierOption
  • Effective min/max (override из binding приоритетнее group default)
  • Цены модификаторов из PriceListModifierItem (только для free binding)

4. Расширенный ответ

  • Каждый product содержит массив modifiers[]
  • Каждый modifier содержит group_id, group_name, binding_type, min, max, options[]
  • Каждый option содержит id, name, price (null для structural)

Инжектированные зависимости

  • ProductStopListRepository
  • CategoryStopListRepository
  • ProductModifierRepository
  • ModifierGroupRepository
  • ModifierOptionRepository
  • PriceListModifierItemRepository

Файлы

  • InternalCatalogMenuController.java — основные изменения

Ссылки