[EPIC-INV-002] Real-Time FIFO Stock & Fridge Ledger

Партионный складской учет, каскадное FIFO-списание и интеграция смарт-меток

Author

Inventory Domain Lead / Database Administrator

Published

July 13, 2026

NoteКраткая карточка эпика
  • Эпик: (EPIC-INV-002)
  • Компоненты: warehouse-fridge-ops, Mobile App (Button: 2. Fridge), Fridge_db
  • Статус: Готово к реализации
  • Направление связи: Клиент \(\leftrightarrow\) Fridge API (gRPC / REST) \(\leftrightarrow\) Fridge_db

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

Этот эпик реализует ядро складского учета. Каждая позиция еды хранится как изолированная партия (Batch) с указанием даты производства и срока годности. При любом списании движок применяет алгоритм каскадного FIFO (сначала списывается самая старая партия). На клиенте на экране Fridge внедрена фильтрация quantity > 0 для исключения рантайм-ошибок пересчета остатков.

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

  • [Migrations] Схема FIFO-склада [Метод 1]: Написание DDL-миграции таблиц партий, IoT смарт-меток веса и таймеров свежести (001_init_fridge_ledger.sql).
  • [Backend] Движок каскадного FIFO-списания [Метод 2]: Реализация транзакционного SQL/компонента итеративного уменьшения остатков партий товара (fifo_deduction_engine.py).
  • [Backend] Обработчик контурных блокировок [Метод 3]: Реализация gRPC-перехватчика, который при нехватке остатков блокирует транзакцию с кодом 422 для контура OFFICE или маскирует минус для контура HOME (contour_policy_enforcer.py).
  • [Frontend] Экран Холодильника (Fridge) [Экран 1]: Разработка интерфейса кнопки 2. Fridge с пре-фильтрацией партий quantity > 0 и отображением сроков годности (fridge_screen.dart).