BUG-005: Structural модификаторы попадают в прейскурант
Описание
В ответе GET /price-lists/{id}/items structural модификаторы (размер пиццы) отображаются в секции unbound_modifiers. Structural модификаторы определяют вариант блюда и не имеют отдельной цены — они не должны быть в прейскуранте вообще. Цена варианта = цена товара (задаётся на товаре в прейскуранте).
Дополнительно: группа “Размер” осталась от удалённого товара и всё равно отображается.
Шаги воспроизведения
- Создать товар “Пепперони” с structural модификатором “Размер” (20/30/15 см)
- Удалить товар (soft delete)
- Открыть прейскурант → в
unbound_modifiersвидны “30 см”, “20 см”, “15 см”
Ожидаемое поведение
- Structural модификаторы (
binding_type = structural) не попадают в прейскурант — ни вmodifier_optionsтоваров, ни вunbound_modifiers - Модификаторы удалённых товаров не отображаются в прейскуранте
Фактическое поведение
"unbound_modifiers": [
{
"modifier_group_name": "Размер",
"options": [
{ "modifier_option_name": "30 см", "price": 0 },
{ "modifier_option_name": "20 см", "price": 0 },
{ "modifier_option_name": "15 см", "price": 0 }
]
}
]Затронутые сервисы
- Catalog Service —
PriceListItemService— логика сборки ответа прейскуранта, фильтрация модификаторов по binding_type и статусу товара