Направление работ: Mobile Код раздела: 5.2.1 Профиль > Настройки профиля > Редактирование учетных данных Статус: черновик Ответственный: Панкова Л.А. Версия: 0.1 Обновлено: 21.07.26


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

Раздел описывает редактирование учетных данных пользователя в мобильном приложении.

Пользовательская цель: обновить личные данные, контактную информацию и дополнительные сведения о себе.

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

Редактирование учетных данных - экран профиля, на котором пользователь изменяет личные данные, контактные данные, социальные сети и дополнительную информацию.

Настройки профиля - раздел мобильного приложения, из которого пользователь переходит к редактированию профиля.

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

Подтверждение контакта - ввод кода из SMS или письма для подтверждения нового телефона или email.

3. Scope

Входит

S1. Просмотр и редактирование учетных данных профиля.

S2. Смена номера телефона.

S3. Привязка или смена электронной почты.

S4. Ошибка валидации при вводе некорректного email.

Не входит

4. BR

Указаны в пункте 4 раздела Back: 1.3 Клиенты.

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

IDСценарийФункциональное требованиеBRВесСтатус
S1: FR5.2.1-1Пользователь открывает редактирование учетных данных из раздела Mobile 5.2 Настройки профиляИнтерфейс позволяет перейти к редактированию учетных данных из раздела Mobile 5.2 Настройки профиля.

При клике на телефон запускается сценарий смены номера телефона.

При клике на почту запускается сценарий привязки или смены электронной почты.
 1Частично \ #OQ5.2.1-1
S2: FR5.2.1-2Пользователь выбирает смену номера телефонаИнтерфейс открывает экран «Смена номера телефона» с заголовком «Укажите новый номер», текстом «Мы отправим на него код подтверждения», полем ввода номера, кнопкой «Продолжить» и цифровой клавиатурой. 1Частично \ #OQ5.2.1-6 \ #OQ5.2.1-7
S2: FR5.2.1-3Пользователь отправляет новый номер телефона на подтверждениеИнтерфейс передает новый номер на подтверждение и переводит пользователя к вводу кода из SMS в разделе Mobile 1.2 Регистрация.

После успешного подтверждения интерфейс возвращает пользователя на экран редактирования профиля и показывает уведомление «Номер телефона обновлен».
 1Частично \ #OQ5.2.1-2 \ #OQ5.2.1-8
S3: FR5.2.1-4Пользователь выбирает привязку или смену электронной почтыИнтерфейс открывает нижний лист «Укажите новый адрес электронной почты» или «Укажите адрес электронной почты» с текстом «Мы вышлем код подтверждения», полем «Email» и кнопкой «Продолжить».

Если email не введен, кнопка «Продолжить» недоступна.
 1Частично \ #OQ5.2.1-3 \ #OQ5.2.1-6
S3: FR5.2.1-5Пользователь отправляет email на подтверждениеИнтерфейс передает email на подтверждение и переводит пользователя к вводу кода из письма в разделе Mobile 1.2.2 Подтверждение почты.

После успешного подтверждения интерфейс возвращает пользователя на экран редактирования профиля и показывает уведомление «Электронная почта подтверждена» при первой привязке или «Электронная почта обновлена» при смене почты.
 1Частично \ #OQ5.2.1-2 \ #OQ5.2.1-3
S4: FR5.2.1-6Пользователь вводит email некорректного форматаИнтерфейс показывает ошибку валидации «Некорректный email» под полем email и оставляет кнопку «Продолжить» недоступной. 1Частично \ #OQ5.2.1-5

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

IDИсточникВопросКомуСтатусРекомендацииИтоговое решение
#OQ5.2.1-1Код FR5.2.1-1Требование говорит: вход в редактирование учётных данных — из раздела 5.2 «Настройки профиля». В коде вход — из выпадающего меню шапки профиля («Редактировать профиль»); экран «Настройки» (ProfileSettingsScreen) ссылки на редактирование не содержит (там гео, смена пароля/код-пароля, удаление аккаунта). Клики по телефону/почте на самом экране редактирования сценарии открывают корректно. \ profile_title.dart:219,229-233; profile_settings_screen.dart:81-573; edit_profile_screen.dart:386-411,444-474Бизнес (Герман)OpenРасхождение в описанном пути. (А, рекоменд.) привести BRD/дизайн к факту — вход через меню шапки профиля, зафиксировать в FR5.2.1-1; (Б) если вход должен быть из «Настроек» — добавить пункт в ProfileSettingsScreen. Пересекается с 5.1/OQ5.1-4 и 5.2/OQ5.2-3 (то же меню «⋯»).привести BRD/дизайн к факту — вход через меню шапки профиля, зафиксировать в FR5.2.1-1
#OQ5.2.1-2Код FR5.2.1-3, FR5.2.1-5Требование говорит: после отправки контакта — переход к вводу кода в разделах 1.2 / 1.2.2 (ввод кода вынесен в «Не входит»). В коде ввод кода реализован внутри той же модалки отдельной страницей ConfirmedPinPage (3-я страница PageView), со своими текстами и вызовами approveCodeUpdatePhoneMobile / approveCodeUpdateEmailMobile; переходов на 1.2 / 1.2.2 нет. \ check_email_phone_main.dart:65-88; confirmed_pin_page.dart:141-233; check_contacts_modal_cubit.dart:52-81Бизнес/РазработкаOpenДве независимые реализации ввода кода (регистрация 1.2/1.2.2 и модалка смены контакта). (А, рекоменд.) узаконить in-modal ввод как отдельный сценарий и убрать из FR5.2.1-3/-5 ссылку на 1.2/1.2.2 (оставить её только как «Не входит: backend»); (Б) переиспользовать экраны 1.2/1.2.2 и удалить ConfirmedPinPage (меньше дублирования, но нужно прокидывать контекст «смена контакта»).узаконить in-modal ввод как отдельный сценарий и убрать из FR5.2.1-3/-5 ссылку на 1.2/1.2.2 (оставить её только как «Не входит: backend»)
#OQ5.2.1-3Код FR5.2.1-4, FR5.2.1-5Требование говорит: для почты различаются привязка и смена — заголовок «Укажите новый адрес…» (смена) vs «Укажите адрес…» (привязка); уведомление «обновлена» (смена) vs «подтверждена» (привязка). В коде заголовок один на оба случая («Укажите адрес электронной почты»), уведомление всегда «подтверждена». Признак emailVerified на вызывающей стороне есть, но для текстов не используется. \ check_contacts_texts.dart:8,10; edit_profile_screen.dart:435,456,466-467Бизнес (Герман)OpenПризнак уже доступен (emailVerified). (А, рекоменд.) реализовать два заголовка и два уведомления по BRD, ветвление по emailVerified; (Б) если различие не нужно — упростить FR5.2.1-4/-5 до одной формулировки.Жду решения от бизнеса
#OQ5.2.1-4Код вне BRDЧто нашли: в экране «Настройки» есть пункт «Изменить пароль аккаунта» (→ PassChangeRoute). В BRD 5.2.1 смена пароля не упоминается ни в Scope, ни в FR. \ profile_settings_screen.dart:262-267Бизнес (Герман)OpenГраницы раздела. (А, рекоменд.) оставить смену пароля в отдельном разделе настроек и явно указать это в Scope «Не входит» 5.2.1; (Б) включить смену пароля в «Редактирование учётных данных» и дописать FR.оставить смену пароля в отдельном разделе настроек и явно указать это в Scope «Не входит»
#OQ5.2.1-5Код FR5.2.1-6Требование говорит: при некорректном email — ошибка «Некорректный email» под полем + кнопка недоступна. В коде валидация есть (checkEmailPattern) и управляет показом кнопки, но текст ошибки под полем не выводится: поле errorMessage в NewContactEnter объявлено, но нигде не рендерится — пользователь не видит причину. \ new_contact_enter.dart:67,119-122,303; regex.dart:25-67РазработкаЗакрывает PMВалидация работает, не хватает вывода текста. Закрываю сам: выводить «Некорректный email» под полем при непустом невалидном значении (использовать существующий errorMessage) → тикет в Bitrix. Если продукту достаточно скрытой кнопки — тогда убрать требование текста из FR5.2.1-6 (правка BRD).Жду решения от бизнеса
#OQ5.2.1-6Код FR5.2.1-2, FR5.2.1-4Требование говорит: кнопка «Продолжить» при пустом/невалидном вводе недоступна (показана в неактивном состоянии). В коде кнопка отрисовывается только if (isConfirmed) — при невалидном вводе она полностью скрыта, а не показана disabled. \ new_contact_enter.dart:303-394РазработкаЗакрывает PMРасхождение состояния кнопки, продуктового выбора почти нет. Закрываю сам: показывать «Продолжить» всегда, в disabled-состоянии при невалидном вводе (ближе к BRD) → тикет в Bitrix. Если продукт хочет скрытую кнопку — узаконить в FR5.2.1-2/-4.узаконить скрытую кнопку в FR5.2.1-2/-4.
#OQ5.2.1-7Код FR5.2.1-2Требование говорит: открывается экран «Смена номера телефона» с заголовком. В коде открывается нижний лист (buildScrollableModalBottomSheet, высота 0.8) с removeTitle: true и title: ';' — отдельного экрана и заголовка «Смена номера телефона» нет; «Укажите новый номер» — это текст тела листа. \ edit_profile_screen.dart:388-396; new_contact_enter.dart:184-190Бизнес (Герман)Open(А, рекоменд.) согласовать формулировку BRD с фактом (нижний лист без шапки, заголовок в теле); (Б) если нужен именно экран с заголовком — доработать открытие (полноэкранный роут / шапка листа).огласовать формулировку BRD с фактом (нижний лист без шапки, заголовок в теле)
#OQ5.2.1-8Код FR5.2.1-3Проблема: после подтверждения показывается «Номер телефона успешно обновлен», в BRD — «Номер телефона обновлен». Мелкое расхождение текста. \ edit_profile_screen.dart:402-403РазработкаЗакрывает PMКосметика, продуктового выбора нет. Закрываю сам: привести к одному варианту («Номер телефона обновлён» по BRD либо зафиксировать «успешно обновлён» в BRD) → тикет в Bitrix.зафиксировать «успешно обновлён» в BRD

Вопросы по сверке с кодом

BRD 5.2.1 v0.1 · booking.mobile.flutter · commit dad0c65/dev · 2026-07-10 · якорь lib/src/feature/check_email_phone_modals/ + lib/src/feature/profile_page/edit_profile/ (вход в экран: profile_page/profile/widget/profile_title.dart) Сводка: вопросов 8 (бизнесовых 4 / программных 4) · подтверждено без вопросов 0 (ни одно FR без расхождений; совпадают по факту: тексты заголовков/подсказок полей, цифровая клавиатура телефона, передача контакта на бэкенд, возврат на экран редактирования) · отрезано находок обратного прохода 4 Под особым вниманием: FR5.2.1-3/FR5.2.1-5 (ввод кода реализован внутри той же модалки, а не в разделах 1.2 / 1.2.2), FR5.2.1-6 (текст «Некорректный email» не показывается), FR5.2.1-1 (вход в экран не из «Настройки профиля»)

Бизнесовые

Связано сЧто в BRDЧто в кодеГде в коде
Б1FR5.2.1-1Пользователь открывает редактирование учётных данных из раздела Mobile 5.2 Настройки профиляВход в экран редактирования — из выпадающего меню в шапке профиля («Редактировать профиль»), а не из «Настроек». Экран «Настройки» (ProfileSettingsScreen) ссылки на редактирование учётных данных не содержит (там гео, смена пароля/код-пароля, удаление аккаунта). Клик по телефону/почте на самом экране редактирования сценарии открывает корректно — нужно решение, какой вход каноническийprofile/widget/profile_title.dart:219,229-233; profile_settings/profile_settings_screen.dart:81-573 (нет пункта); клики: edit_profile/edit_profile_screen.dart:386-411, 444-474
Б2FR5.2.1-3, FR5.2.1-5После отправки контакта интерфейс переводит пользователя к вводу кода в разделах Mobile 1.2 Регистрация / Mobile 1.2.2 Подтверждение почты (ввод кода вынесен в «Не входит»)Ввод кода реализован внутри той же модалки отдельной страницей ConfirmedPinPage (3-я страница PageView), с собственными текстами и вызовами approveCodeUpdatePhoneMobile / approveCodeUpdateEmailMobile. Переходов на экраны 1.2 / 1.2.2 нет — нужно решение, переиспользовать экраны регистрации или оставить отдельную реализациюcheck_email_phone_main.dart:65-88; modals/confirmed_pin_page.dart:141-233; cubit/check_contacts_modal_cubit.dart:52-81; identity_repository.dart:13,17
Б3FR5.2.1-4, FR5.2.1-5Для почты различаются привязка и смена: заголовок «Укажите новый адрес электронной почты» (смена) vs «Укажите адрес электронной почты» (привязка); уведомление «Электронная почта обновлена» (смена) vs «подтверждена» (привязка)Заголовок один на оба случая — «Укажите адрес электронной почты»; уведомление всегда «Электронная почта подтверждена». Признак «привязка/смена» на вызывающей стороне есть (emailVerified), но для текстов не используется — нужно решение, различать ли формулировкиcheck/utils/check_contacts_texts.dart:8,10; edit_profile/edit_profile_screen.dart:435,456,466-467
Б4вне BRD (обратный проход)В экране «Настройки» есть пункт «Изменить пароль аккаунта» (→ PassChangeRoute). В BRD 5.2.1 «Редактирование учётных данных» смена пароля не упоминается ни в Scope, ни в FR — нужно решение, относится ли смена пароля к этому разделу или живёт отдельноprofile_settings/profile_settings_screen.dart:262-267

Рекомендация / варианты решения

  • Точка входа (Б1) — расхождение в описанном пути. Вариант А (рекоменд.): привести BRD/дизайн к факту — вход через меню шапки профиля, зафиксировать это в FR5.2.1-1. Вариант Б: если по продукту вход должен быть из «Настроек» — завести задачу на добавление пункта в ProfileSettingsScreen и скорректировать код.
  • Место ввода кода (Б2) — сейчас две независимые реализации ввода кода (регистрация 1.2/1.2.2 и модалка смены контакта). Вариант А (рекоменд.): узаконить in-modal ввод как отдельный сценарий и убрать из FR5.2.1-3/-5 ссылку на 1.2/1.2.2 (оставив её только как «Не входит: backend-логика»). Вариант Б: если нужна единая точка ввода кода — переиспользовать экраны 1.2/1.2.2 и удалить ConfirmedPinPage (сокращает дублирование, но требует прокидывать контекст «смена контакта»).
  • Привязка vs смена почты (Б3) — признак уже доступен (emailVerified). Вариант А (рекоменд.): реализовать два текста заголовка и два уведомления по BRD, ветвление по emailVerified на вызывающей стороне. Вариант Б: продукт решает, что различие не нужно — тогда упростить FR5.2.1-4/-5 до одной формулировки.
  • Смена пароля (Б4) — определить границы раздела. Вариант А (рекоменд.): оставить смену пароля в отдельном разделе настроек и явно указать это в Scope «Не входит» 5.2.1. Вариант Б: включить смену пароля в «Редактирование учётных данных» и дописать FR.

Программные

Связано сЧто в BRDЧто в кодеГде в коде
П1FR5.2.1-6При некорректном email интерфейс показывает ошибку «Некорректный email» под полем и оставляет «Продолжить» недоступнойВалидация email есть (checkEmailPattern), но она только управляет показом кнопки; текст ошибки под полем не выводится — поле errorMessage в NewContactEnter объявлено, но нигде не рендерится. Пользователь не видит причину — нужно решение по показу текста ошибкиmodals/new_contact_enter.dart:67,119-122,303; core/utils/regex.dart:25-67
П2FR5.2.1-2, FR5.2.1-4Кнопка «Продолжить» при пустом/невалидном вводе недоступна (показана в неактивном состоянии)Кнопка «Продолжить» отрисовывается только if (isConfirmed) — при невалидном вводе она полностью скрыта, а не показана disabled. Отличается от «недоступна» по BRDmodals/new_contact_enter.dart:303-394
П3FR5.2.1-2Интерфейс открывает экран «Смена номера телефона» с заголовкомОткрывается нижний лист (buildScrollableModalBottomSheet, высота 0.8) с removeTitle: true и title: ';' — отдельного экрана и заголовка «Смена номера телефона» нет; заголовок «Укажите новый номер» — это текст тела листаedit_profile/edit_profile_screen.dart:388-396; check/modals/new_contact_enter.dart:184-190
П4FR5.2.1-3После подтверждения — уведомление «Номер телефона обновлен»Показывается «Номер телефона успешно обновлен» — расхождение в тексте уведомленияedit_profile/edit_profile_screen.dart:402-403

Рекомендация / варианты решения

  • Текст ошибки email (П1) — Вариант А (рекоменд.): выводить «Некорректный email» под полем при непустом невалидном значении (использовать уже существующий errorMessage/добавить Text под полем). Вариант Б: если по продукту достаточно скрытой кнопки — синхронизировать FR5.2.1-6 с фактом (убрать требование текста ошибки).
  • Кнопка «недоступна» vs скрыта (П2) — расхождение в состоянии кнопки. Вариант А (рекоменд.): показывать «Продолжить» всегда, в disabled-состоянии при невалидном вводе (ближе к BRD и привычнее пользователю). Вариант Б: узаконить текущее поведение (скрытая кнопка) в FR5.2.1-2/-4.
  • Экран vs нижний лист и заголовок (П3) — Вариант А (рекоменд.): согласовать формулировку BRD с фактом (нижний лист без шапки, заголовок в теле). Вариант Б: если нужен именно экран с заголовком — доработать открытие (полноэкранный роут / шапка листа).
  • Текст уведомления (П4) — Вариант А (рекоменд.): привести к одному варианту («Номер телефона обновлен» по BRD либо зафиксировать «успешно обновлен» в BRD). Мелкое, но влияет на согласованность формулировок.

0 items under this folder.