Задача разработки: [FLUTTER-204] Интеграция селектора режимов заморозки на экране добавления смарт-меток

Карточка Jira Task: Обновление UI-компонента и сериализации сетевой модели под требования PATCH-контракта

Published

July 3, 2026

Общая информация

  • Эпик: [BPDS-CORE] Интеграция Периодической Системы и Смарт-Меток
  • Домен: FLUTTER_UI (Клиентский интерфейс мобильного приложения)
  • ID Задачи: FLUTTER-204
  • Исполнитель: Назначается
  • Текущий Статус: Ready for Dev
  • Влияние на релиз: 🟡 Среднее (Зависит от готовности бэкенд-эндпоинта в задаче INVENTORY-412)

Контекст и Ссылки

Задача направлена на доработку экрана сканирования смарт-меток в модуле Fridge (плитка Preparing / Кухня в хабе). Необходимо предоставить аналитикам и пользователям возможность ручного выбора термодинамического режима хранения (storage_mode) перед отправкой мутационного запроса на бэкенд.

Ссылки на документацию проекта:

  • 📑 Архитектурная спецификация метода (API Contract): Документация: Метод POST/PATCH /api/v1/fridge/scan-tag
  • 💻 Исходный код родительского хаба для навигации: Просмотреть текущий файл hub_screen.dart в репозитории проекта.

Техническое задание для Разработчика (Scope of Work)

1. Модификация Сетевого Слоя (api_service.dart)

  • Обновить сигнатуру метода patchScanTag. Метод должен принимать строковый параметр storageMode.
  • Убедиться, что при сериализации тела запроса (jsonEncode) в JSON-пакет подставляется ключ "storage_mode", принимающий значения строго из системного перечня: "CHILLED" или "FROZEN".

2. Реализация UI-компонента Выбора Режима (Flutter / Material 3)

  • Внедрить на экран сканирования метки сегментированный переключатель или переключаемые чипсы (ChoiceChip).
  • Палитра стилизации (в соответствии с UI-Kit):
    • Режим CHILLED (Охлажденное): Использовать цвет темы кухни — Color(0xff319795).
    • Режим FROZEN (Заморозка): Использовать контрастный акцентный цвет — Color(0xff2B6CB0).
  • Применить реактивное управление состоянием: изменение выбора должно обновлять локальный стейт виджета через вызов setState().

3. Обработка Исключительных Бизнес-Сценариев

  • Реализовать перехват ответа HTTP 403 Forbidden с кодом ошибки ERR-CONTAINER-OWNED-BY-OTHER-GROUP.
  • При перехвате данной ошибки вызывать нативный AlertDialog (аналогично механизму _showNativeNotificationDialog в HubScreen), блокирующий повторную отправку и предлагающий связаться с администратором или очистить контейнер.

Спецификация для QA Automation (Чек-лист автоматизации интерфейса)

Автоматизатор UI-тестирования (Appium / Integration Test) должен покрыть следующие сценарии:


Критерии приемки задачи (Definition of Done)