TC-06: Удаление ингредиента + технология приготовления + себестоимость

Что сделать

Кнопка “Убрать” ингредиент с модалкой, textarea технологии приготовления с auto-save, отображение себестоимости.

Смотри спеку

Секции “Убрать ингредиент”, “Технология приготовления”, “Себестоимость” в Каталог — Товары.

Конкретно

Удаление ингредиента

  • Кнопка “Убрать” в строке таблицы (Franchise only)
  • Модалка: “Убрать [название] из рецептуры?”
  • API: DELETE /api/v1/admin/warehouse/tech-cards/{id}/items/{itemId}
  • Toast “Ингредиент убран”, таблица обновляется

Технология приготовления

  • Textarea под таблицей ингредиентов
  • Placeholder: “Опишите шаги приготовления…”
  • Pre-filled из cooking_description
  • Auto-save при blur: PATCH /api/v1/admin/warehouse/tech-cards/{id} с { cooking_description: value }
  • Read-only для Franchisee/Manager и старых версий

Себестоимость

  • API: GET /api/v1/admin/warehouse/tech-cards/{id}/cost
  • Загружается при открытии таба и после любого изменения ингредиентов
  • В шапке: total_cost — “Себестоимость: 187,50 ₽” или ”—”
  • В таблице: колонка “Стоимость” — item_cost per ingredient
  • warnings[] — если нет цены для ингредиента → иконка ⚠ рядом с ”—” в колонке, tooltip с текстом warning

Файлы

  • web/src/pages/catalog/ProductViewPage.tsx — дополнить

Зависит от

  • TC-04 (таблица ингредиентов)