TC-05: Модалка “Добавить ингредиент”
Что сделать
Модалка поиска/создания ингредиента и добавления в рецептуру.
Смотри спеку
Секция “Добавить ингредиент → модалка” в Каталог — Товары.
Конкретно
Поиск
- Поиск по ингредиентам:
GET /api/v1/admin/catalog/products?type=ingredient&search=... - Поиск по полуфабрикатам:
GET /api/v1/admin/catalog/products?type=dish&search=... - Объединённый список с бейджами типа
Быстрое создание ингредиента
Кнопка “Создать ингредиент” внизу списка → inline-форма:
- Название (обязательное)
- Единица измерения (select: г, кг, мл, л, шт)
- API:
POST /api/v1/admin/catalog/productsсtype: "ingredient" - После создания — ингредиент выбирается автоматически
Заполнение полей
После выбора ингредиента:
- Брутто (number, required)
- Нетто (number, required)
- Единица измерения (select)
- % потерь холодная (number, optional)
- % потерь горячая (number, optional)
API
POST /api/v1/admin/warehouse/tech-cards/{id}/items
Ошибки
| Код | Показать |
|---|---|
INGREDIENT_NOT_FOUND (404) | Toast “Ингредиент не найден” |
CIRCULAR_REFERENCE (422) | Toast “Циклическая ссылка — полуфабрикат ссылается сам на себя” |
VALIDATION_ERROR (400) | Подсветка полей |
После успеха
Модалка закрывается, таблица обновляется, toast “Ингредиент добавлен”.
Файлы
web/src/pages/catalog/ProductViewPage.tsx— дополнить (или отдельный компонент модалки)
Зависит от
- TC-04 (таблица ингредиентов)