[EPIC-INV-003] Culinary Loop & Resource Depreciation

Управление процессами готовки, потребления и порчи продуктов

Author

Inventory Domain Lead / Backend Core Developer

Published

July 13, 2026

NoteКраткая карточка epic
  • Эпик: (EPIC-INV-003)
  • Компоненты: warehouse-fridge-ops, Kafka (KRaft), Mobile App (Buttons: Cook, Consume, Waste)
  • Статус: Готово к реализации
  • Направление связи: Склад \(\rightarrow\) Kafka (bpds.inventory.out.fridge_item.consume / waste) \(\rightarrow\) AFFINITY

Бизнес-контекст и цель (Business Context)

Данный контур замыкает Кулинарный Цикл (The Culinary Loop). Нажатие кнопки 3. Cook списывает сырье через команду in.fridge_item.deduct и зачисляет готовое составное блюдо со статусом READY_MEAL обратно через out.meal_item.create. Кнопки Consume (Потребление) и Waste (Мусорка) отправляют асинхронные векторы со знаком (+) или (-) в Kafka для обучения предиктивных моделей ИИ.

Список атомарных задач:

  • [Backend] Консьюмер команды на списание [Метод 1]: Реализация обработчика топика bpds.inventory.in.fridge_item.deduct для запуска FIFO-процесса под готовку (fifo_deduct_command_consumer.py).
  • [Backend] Эмиттер создания готового блюда [Метод 2]: Реализация публикации события завершения готовки в топик bpds.inventory.out.meal_item.create (meal_create_producer.py).
  • [Backend] Эмиттер векторов потребления и утилизации [Метод 3]: Публикация событий в топики out.fridge_item.consume и out.fridge_item.waste для домена аналитики (depreciation_event_producer.py).
  • [Frontend] Экран Готовки (Cook) [Экран 1]: Верстка интерфейса кнопки 3. Cook для сборки блюда по технологической карте рецепта (cook_screen.dart).
  • [Frontend] Экран Потребления (Consume) [Экран 2]: Доработка логики каскадного списания порций по FIFO на экране кнопки 4. Consume (consume_screen.dart).
  • [Frontend] Интерфейс Мусорки (Waste) [Экран 3]: Реализация экрана кнопки 5. Waste для фиксации и отправки веса испорченной еды в утиль (waste_screen.dart).