Направление работ: Mobile Код раздела: 3.1 Для вас > Вкладка: Избранное Статус: Готов Ответственный: Панкова Л.А. Версия: 0.1 Обновлено: 10.07.26


1. Назначение

Раздел описывает вкладку Избранное в блоке Для вас.

Пользовательская цель: быстро найти ранее сохраненные площадки и перейти к их бронированию.

2. Ключевые понятия

Избранное - список площадок, которые пользователь сохранил для быстрого возврата.

Площадка - карточка сохраненной площадки, доступная пользователю во вкладке Избранное.

Сортировка - настройка порядка отображения избранных площадок.

3. Scope

Входит

S1. Просмотр избранных площадок и переходы из вкладки Избранное.

S2. Сортировка списка избранных площадок и отображение по карте.

S3. Управление избранным из списка.

S4. Состояния списка избранных площадок.

Не входит

4. BR

Указаны в пункте 4 разделов Back: 2.2 Площадки партнеров и Back: 2.1 Объекты партнеров.

5. Функциональные требования (UC + FR)

IDСценарийФункциональное требованиеBRВесСтатус
S1: FR3.1-1Пользователь открывает вкладку ИзбранноеИнтерфейс показывает вкладку Избранное и позволяет перейти на соседние вкладки Mobile 3.2 Вкладка: Горящие и Mobile 3.3 Вкладка: Подборки (на будущую реализацию). 1Реализовано
S1: FR3.1-2Пользователь просматривает список избранных площадокИнтерфейс показывает карточки избранных площадок.

В карточке отображаются фото площадки с индикатором карусели, признак избранного, скидка M-баллами, название площадки, площадь, объект, расстояние, метро, рейтинг, цена и процент начисления M-баллов.

По тапу на карточку интерфейс переводит пользователя в услуге.
 1Частично · OQ3.1-3
S2: FR3.1-3Пользователь открывает сортировку спискаИнтерфейс показывает варианты сортировки с единичным выбором: сначала новые, сначала старые, стоимость по возрастанию, стоимость по убыванию, рядом со мной. 1Реализовано · OQ3.1-4
S2: FR3.1-4Пользователь выбирает сортировкуИнтерфейс применяет выбранный вариант сортировки к списку площадок и отображает выбранный вариант в хедере списка. 1Реализовано
S2: FR3.1-5Пользователь выбирает отображение по картеИнтерфейс показывает избранные площадки на карте и карточку выбранной площадки поверх карты. 2Реализовано
S3: FR3.1-6Пользователь убирает площадку из избранногоИнтерфейс удаляет площадку из избранного прямо из списка. После удаления список обновляется с задержкой до 300 мс, после чего площадка больше не отображается. 1Реализовано
S4: FR3.1-7У пользователя нет избранных площадокИнтерфейс показывает пустое состояние с текстами “В избранном пока ничего нет” и “Добавьте площадку и они появятся здесь”. 1Реализовано
S4: FR3.1-8Список избранных площадок загружаетсяИнтерфейс показывает состояние загрузки списка площадок. 2Реализовано

6. Открытые вопросы

IDИсточникВопросКомуСтатусИтоговое решение
#OQ3.1-1    

Сверка BRD ↔ код. BRD v0.1 (обновлён 10.07.26) · репозиторий booking.mobile.flutter (Flutter/Dart) · commit dad0c65, ветка dev · дата сверки 2026-07-14 · якорь: lib/src/feature/for_you/ (вкладки + favorites_list_bloc.dart), lib/src/feature/room_details/data/favorites_repository.dart (операции избранного), lib/src/feature/rooms_search/widget/room_card.dart (карточка), lib/src/core/utils/widgets/filter_selector.dart (сортировка), lib/src/feature/map_search/ (карта). Гайдбук не передавался — маршрутизация без сверки с гайдбуком. Статусы и адресация — предложение аудитора, требуют валидации человеком. Адресаты: бизнесовые → Бизнес (Герман), программные/технические → Разработка (Владислав).

Открытые вопросы

IDИсточникВопросКомуСтатусРекомендацииИтоговое решение
OQ3.1-2FR3.1-1Требование говорит: вкладка «Избранное» позволяет перейти на соседние вкладки «Горящие» и «Подборки». В коде в блоке «Для вас» только две вкладки — «Избранное» и «Горящие»; вкладки «Подборки» нет (TabController(length: 2), tabs: [Tab('Избранное'), Tab('Горящие')]).
lib/src/feature/for_you/widget/for_you_screen.dart:86,123-127
Бизнес (Герман)ClosedПодтвердить, входит ли вкладка «Подборки» (Mobile 3.3) в текущий релиз. Если входит — она не реализована (нужен тикет разработке); если отложена — скорректировать FR3.1-1, убрав переход на «Подборки», чтобы требование соответствовало факту.Жду решения от бизнеса

От бизнеса: «Подборки» — вес 3, на будущую реализацию.
OQ3.1-3FR3.1-2Требование говорит: в карточке отображается фото площадки с индикатором карусели. В коде карточка показывает одно изображение (ImageCashedWidget), без карусели и индикатора; пакет carousel_slider импортирован, но не используется, а _currentImageIndex нигде не отрисовывается. Дополнительно источник фото карточки — room.files, тогда как парсер избранного заполняет только room.images и оставляет files пустым → фото избранной площадки, вероятно, не отрисовывается вовсе.
lib/src/feature/rooms_search/widget/room_card.dart:2,49,173-177; lib/src/feature/room_details/data/favorites_repository.dart:434-459
Разработка (Владислав)OpenРеализовать карусель с индикатором либо согласовать с бизнесом упрощение FR3.1-2 до одного фото. Отдельно проверить/починить источник изображения избранной карточки (читать images/геттер firstImageUrl, а не пустой files).Реализовать карусель с индикатором
OQ3.1-4FR3.1-3Требование говорит: варианты сортировки «стоимость по возрастанию» и «стоимость по убыванию». В коде соответствующие пункты названы «Цена по возрастанию» и «Цена по убыванию» (остальные три пункта и единичный выбор совпадают).
lib/src/feature/room_details/data/favorites_repository.dart:12-21
Бизнес (Герман)OpenСогласовать каноничный текст пунктов сортировки: «стоимость» (BRD) или «Цена» (код). Разночтение чисто в подписи — привести к одному варианту в BRD или в коде.привести к одному варианту «стоимость» (как в BRD)
OQ3.1-5FR3.1-5Требование говорит: отображение избранного на карте — «на будущую реализацию» (вес 3). В коде в хедере вкладки «Избранное» уже есть кнопка карты, открывающая карту в режиме избранного (MapSearchRoute(favouriteOnly: true)), а экран карты грузит именно избранные площадки (favouriteOnlyMapBasePointEvent.updateRooms). То есть код делает больше, чем предполагает статус «на будущую».
lib/src/feature/for_you/widget/for_you_screen.dart:186-211; lib/src/feature/map_search/widget/map_search_screen.dart:116,128-131
Бизнес (Герман)OpenАктуализировать статус FR3.1-5: карта избранного уже частично реализована. Уточнить, реализована ли вторая часть требования — «карточка выбранной площадки поверх карты» — и перевести требование из «будущей реализации» в актуальный scope.Жду решения от бизнеса

От бизнеса: отлично, меняем вес на 2.
OQ3.1-6FR3.1-6Требование говорит: площадка удаляется из избранного прямо из списка и сразу скрывается из списка. В коде удаление идёт по тапу на «закладку» в карточке (_toggleFavoriteremoveFromFavorites), после чего через задержку Future.delayed(300ms) запускается полный рефреш списка (refreshWhenUpdateFavourite) — карточка исчезает не мгновенно, а после перезагрузки. При этом событие блока removeFromFavorites с мгновенным локальным скрытием (updatedRooms) определено, но из UI списка не вызывается (мёртвый код).
lib/src/feature/rooms_search/widget/room_card.dart:291-308; lib/src/feature/for_you/bloc/favorites_list_bloc.dart:16,355-397
Разработка (Владислав)ClosedЛибо перейти на оптимистичное мгновенное скрытие через уже готовый event removeFromFavorites (соответствует «сразу скрывает»), либо подтвердить, что рефреш через 300 мс приемлем как «сразу». Удалить неиспользуемый путь, чтобы поведение было однозначным.подтвердить, что рефреш через 300 мс приемлем как «сразу»

От бизнеса: принято, требование уточнили.

0 items under this folder.