[EPIC-INV-002] Real-Time FIFO Stock & Fridge Ledger
Партионный складской учет, каскадное FIFO-списание и интеграция смарт-меток
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).