Направление работ: Mobile Код раздела: 5.9.1 Раздел: Профиль > Ограничения > Оспорить ограничение Статус: черновик Ответственный: Панкова Л.А. Версия: 0.1 Обновлено: 13.07.26
1. Назначение
Раздел позволяет клиенту выбрать действие для ограничения и перейти к его оспариванию.
В текущем сценарии интерфейс открывает системное почтовое приложение с адресом партнера. Для будущей реализации предусмотрен встроенный чат с отправкой сообщения и вложений.
Раздел зависит от Back: 1.3.2 Характеристики клиента и использует ограничения из Mobile 5.9.
2. Ключевые понятия
Ограничение — примененная партнером характеристика клиента, которая изменяет доступность бронирования или условия оказания услуг в конкретной партнерской зоне.
Оспаривание ограничения — обращение клиента к партнеру по выбранному ограничению.
Чат для оспаривания — интерфейс отправки партнеру сообщения и вложений по выбранному ограничению.
3. Scope
Входит
S1: Ограничения и действия с ними
S2: Чат для оспаривания ограничения (на будущую реализацию)
Не входит
4. BR
Указаны в пункте 4 раздела Back: 1.3.2 Характеристики клиента.
5. Функциональные требования (UC + FR)
| ID | Сценарий | Функциональное требование | BR | Вес | Статус |
|---|---|---|---|---|---|
| S1: FR5.9.1-1 | Клиент просматривает доступные действия с ограничением | Интерфейс показывает в карточке ограничения действия «Оспорить» и «Оплатить», если они доступны для выбранного ограничения. | 1 | Реализовано — OQ5.9.1-3 | |
| S1: FR5.9.1-2 | Клиент оспаривает ограничение | Интерфейс по действию «Оспорить» открывает системное почтовое приложение с адресом электронной почты партнера. | 1 | Частично — OQ5.9.1-1, OQ5.9.1-2 | |
| S1: FR5.9.1-3 | Клиент оплачивает начисленный сбор | Интерфейс по действию «Оплатить» начинает сценарий оплаты начисленного сбора. | 1 | Реализовано — OQ5.9.1-4 (см. также OQ5.9.1-5) | |
| S2: FR5.9.1-4 | Клиент переходит к оспариванию в приложении (на будущую реализацию) | Интерфейс по действию «Оспорить» открывает чат с адресом электронной почты партнера, полем «Сообщение…» и действиями добавления вложения и отправки. | 3 | — OQ5.9.1-6 | |
| S2: FR5.9.1-5 | Клиент отправляет сообщение партнеру (на будущую реализацию) | Интерфейс позволяет ввести текст сообщения и отправить его партнеру по выбранному ограничению. | 3 | — OQ5.9.1-6 | |
| S2: FR5.9.1-6 | Клиент добавляет вложения (на будущую реализацию) | Интерфейс позволяет прикрепить до пяти файлов как «Изображение» или «Документ», показывает добавленные изображения и позволяет удалить вложение до отправки. | 3 | — OQ5.9.1-6 | |
| S2: FR5.9.1-7 | Сообщение успешно отправлено (на будущую реализацию) | Интерфейс показывает подтверждение отправки, сообщает, что дальнейшее оспаривание сборов осуществляется по электронной почте клиента, и позволяет закрыть состояние по действию «Закрыть». | 3 | — OQ5.9.1-6 | |
| S2: FR5.9.1-8 | Сообщение не отправлено (на будущую реализацию) | Интерфейс показывает экран «Ошибка» с сообщениями «Что-то пошло не так» и «Проверьте соединение с интернетом или повторите попытку позднее» и позволяет повторить отправку по действию «Попробовать еще раз». | 3 | — OQ5.9.1-6 |
6. Открытые вопросы
Пин-контекст. BRD 5.9.1 v0.1 · репо
booking.mobile.flutter(Flutter/Dart) · commitdad0c65/ веткаdev· дата 2026-07-14 · якорьlib/src/feature/profile_page/forfeits/(точка входа — Профиль → «Ограничения»,profile_screen.dart:539→ForfeitsRoute). Сводка. 6 вопросов (Open — 2 · Закрывает PM — 1 · Подтверждено — 3) · отрезано находок обратного прохода — 3 (принадлежат разделу Mobile 5.9 «Ограничения», не 5.9.1). Маршрутизация без сверки с гайдбуком — гайдбук на вход не передавался; спорные вопросы отнесены бизнесу как «подтвердить нечем».
| ID | Источник | Вопрос | Кому | Статус | Рекомендации |
|---|---|---|---|---|---|
| OQ5.9.1-1 | Код FR5.9.1-2 | Требование говорит: «Оспорить» открывает почтовое приложение с адресом партнёра. В коде адрес получателя жёстко задан как служебная почта сервиса support@musbooking.com — письмо уходит в поддержку MUSbooking, а не партнёру. При этом e-mail партнёра приходит с бэкенда и доступен на карточке, но не используется. \ forfeit_tile.dart:250-254, поле есть: forfeit_model.dart:44 (partnerEmail) | Бизнес (Герман) | Open | (А, реком.): подтвердить, что оспаривание должно идти партнёру, и подставить forfeit.partnerEmail — данные уже приходят, правка на стороне разработки минимальна. (Б): если по продукту оспаривание намеренно маршрутизируется через поддержку MUSbooking — зафиксировать это в BRD (заменить «адрес партнёра» на «поддержку сервиса»). Разблокирует OQ5.9.1-2. |
| OQ5.9.1-2 | Код FR5.9.1-2 | Требование говорит: клиент оспаривает выбранное ограничение. В коде тема и текст письма — фиксированные заглушки («Оспорить ограничение площадки» / «Укажите название ограничения и ссылку на проблему»); ни название ограничения, ни площадка, ни заказ в письмо не подставляются, хотя эти данные есть на карточке. Получатель не понимает, о каком именно ограничении речь. \ forfeit_tile.dart:250-254 (данные доступны: forfeit_model.dart:43-52) | Разработка (Владислав) | Open | (А, реком.): подставлять в тему/текст название площадки, комнаты, причину и период заказа из карточки — так письмо станет адресным. (Б): оставить заглушку и попросить клиента заполнять вручную (хуже для партнёра). Зависит от OQ5.9.1-1 (сначала адрес получателя). |
| OQ5.9.1-5 | Код (сверх BRD, область FR5.9.1-3) | Проблема: перед оплатой сбора код проверяет, указан ли e-mail клиента, и показывает форму ввода, если почты нет. Но сразу после этой проверки результат принудительно перезаписывается на «можно платить» — форма ввода почты фактически ни на что не влияет, оплата продолжается в любом случае. Похоже на забытую отладочную строку. \ forfeit_tile.dart:336 (перекрывает проверку из forfeit_tile.dart:306-334) | Разработка (Владислав) | Закрывает PM | Закрываю сам: убрать безусловное canPay = true и оставить результат реальной проверки e-mail (или явно отказаться от требования почты, если оно не нужно) → тикет в Bitrix. Продуктового выбора нет — либо проверка нужна и должна работать, либо её надо удалить целиком. |
| OQ5.9.1-3 | Код FR5.9.1-1 | Что подтверждено: карточка ограничения показывает оба действия. «Оспорить» отображается всегда; «Оплатить» — только когда сбор начислен (сумма > 0) и у ограничения есть платёжная настройка — это и есть «если доступны». Примечание: у действия «Оспорить» отдельного условия доступности нет (показывается для любого ограничения) — если по продукту оно должно иногда скрываться, это уточняется отдельно. \ «Оспорить»: forfeit_tile.dart:246-287; «Оплатить» + условие: forfeit_tile.dart:288-289 | — | Подтверждено | Расхождения по наличию действий нет. При необходимости — уточнить у бизнеса, всегда ли доступно «Оспорить». |
| OQ5.9.1-4 | Код FR5.9.1-3 | Что подтверждено: действие «Оплатить» запускает сценарий оплаты сбора: приложение запрашивает у бэкенда ссылку на оплату (метод CreatePaymentLinkForForfeitMobile) и открывает её во внешнем окне оплаты. \ forfeit_tile.dart:295-347 → forfeit_cubit.dart:45-71 → forfeit_repository.dart:39-65 | — | Подтверждено | Расхождения нет. Технический дефект в этом же потоке — см. OQ5.9.1-5. |
| OQ5.9.1-6 | Код FR5.9.1-4 … FR5.9.1-8 | Что подтверждено: встроенный чат оспаривания (S2 — форма сообщения, вложения, экраны успеха/ошибки) в коде отсутствует: экран чата полностью закомментирован, маршрут к нему выключен. Это соответствует пометке BRD «на будущую реализацию» — расхождения нет, реализовывать пока нечего. \ support_chat/widget/support_chat_screen.dart:1-106 (весь файл закомментирован), маршрут выключен: app_router.dart:374 | — | Подтверждено | Расхождения нет — S2 намеренно отложен. Проверить повторно при старте работ по чату оспаривания. |