Задача разработки: [FLUTTER-204] Интеграция селектора режимов заморозки на экране добавления смарт-меток
Карточка Jira Task: Обновление UI-компонента и сериализации сетевой модели под требования PATCH-контракта
Общая информация
- Эпик:
[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) должен покрыть следующие сценарии: