BRD Widget 6.1 Информация о клиенте
Направление работ: Widget Код раздела: 6.1 Раздел: Профиль > Информация о клиенте Статус: черновик Ответственный: Панкова Л.А. Версия: 0.1 Обновлено: 11.08.26
1. Назначение
Раздел описывает блок информации о клиенте в виджете на шаге дополнений к бронированию после входа в аккаунт.
Клиент видит данные текущего аккаунта, может сменить клиента или выйти из аккаунта. Если клиент заблокирован в текущей партнерской зоне, интерфейс показывает это состояние и не позволяет продолжить бронирование для этого клиента.
Документ описывает только информацию о клиенте и действия с текущим клиентским аккаунтом. Оборудование, услуги, баллы, промокоды, комментарии, оплата, правила площадки, данные площадки и параметры заказа относятся к соседним разделам.
Раздел зависит от Back: 1.3 Клиенты.
2. Ключевые понятия
Информация о клиенте - блок виджета, в котором клиент видит данные текущего аккаунта и выполняет действия с ним в рамках бронирования.
Карточка клиента - сущность с персональной информацией об аккаунте и данными по партнерам.
Блокировка клиента в партнерской зоне - состояние клиента в рамках текущей партнерской зоны, при котором клиенту недоступно продолжение бронирования у этого партнера.
3. Scope
Входит
S1: Просмотр информации о клиенте
S2: Действия с клиентским аккаунтом
S3: Состояние заблокированного клиента
Не входит
- Widget: 2.1 Блок данных выбранной площадки > О площадке
- Widget: 4.2 Блок данных потенциального заказа > Отображение после входа в аккаунт
- Widget: 5.1 Дополнения к заказу и подтверждение > Дополнительные позиции к заказу
- Widget: 5.2 Дополнения к заказу и подтверждение > Скидки, комментарий и правила
- Widget: 6.2 Профиль > Настройки профиля
- Widget: 6.2.1 Профиль > Настройки профиля > Редактирование учетных данных
- Back: 1.3 backend-логика карточки клиента и данных по партнерам
4. BR
Указаны в пункте 4 раздела Back: 1.3 Клиенты.
5. Функциональные требования (UC + FR)
FR - functional requirements, что интерфейс должен уметь делать по определенному UC.
| ID | Сценарий | Функциональное требование | BR | Вес | Статус |
|---|---|---|---|---|---|
| S1: FR6.1-1 | Клиент просматривает текущий аккаунт в виджете | Интерфейс показывает в блоке клиента аватар, ФИО, телефон, email и баланс М-баллов. Баланс отображается всегда, в том числе нулевой — клиент без баллов видит 0. | 1 | Реализовано \ OQ6.1-2 | |
| S2: FR6.1-2 | Клиент возвращается к предыдущему шагу | Интерфейс по действию возврата открывает шаг выбора времени и сохраняет состояние входа в активный аккаунт, но может измениться цена (например: у клиента есть сбор). | 2 | Реализовано | |
| S2: FR6.1-3 | Клиент меняет текущего пользователя | Интерфейс позволяет выйти из аккаунта в рамках этого раздела. | 1 | Реализовано \ OQ6.1-6 | |
| S2: FR6.1-4 | Клиент выходит из аккаунта | Интерфейс показывает подтверждение выхода в поповере, привязанном к действию выхода в карточке клиента, с действиями Остаться и Выйти; Остаться закрывает поповер без выхода, Выйти завершает текущую клиентскую сессию в виджете. Модальное окно не используется. | 1 | Не реализовано \ OQ6.1-3 | |
| S3: FR6.1-5 | Клиент заблокирован в текущей партнерской зоне | Интерфейс показывает сообщение Вы заблокированы в данной партнерской зоне рядом с информацией о клиенте, если блокировка была применена к этому клиенту в текущей партнерской зоне. Признак блокировки интерфейс получает вместе с данными клиента — см. OQ6.1-4. | 1 | Не реализовано \ OQ6.1-4 | |
| S3: FR6.1-6 | Заблокированный клиент пытается продолжить бронирование | Интерфейс не позволяет продолжить бронирование для заблокированного клиента и оставляет доступными действия возврата назад или выхода из аккаунта. | 1 | Не реализовано \ OQ6.1-5 |
6. Открытые вопросы
BRD 6.1 (Widget) v0.1 · репо widget-v3 (MusBooking Widget) · commit b9965d5 / branch test · дата сверки 2026-07-15 Якорь:
features/order-client-card/,widgets/order-form/,entities/client/,entities/auth/,widgets/booking/steps/,widgets/booking/composables/useLayout.tsМаршрутизация без сверки с гайдбуком (гайдбук не передан). Адресаты: бизнес → Герман, разработка → Владислав. Сводка: вопросов 6 (бизнесу 2 / разработке 3 / закрывает PM 1) · подтверждено без вопросов 2 (FR6.1-2, FR6.1-3) · подтверждающих записей 1 (OQ6.1-6) · отрезано находок 0. Разбор 11.08.26: решения приняты по OQ6.1-2 (закрыт), OQ6.1-3 (поповер вместо диалога), OQ6.1-4 (новый методGetClientWidget), OQ6.1-5 (ждёт OQ6.1-4), OQ6.1-7 (бейдж убрать). Открытым остаётся только OQ6.1-8 — за PM.
| ID | Источник | Вопрос | Кому | Статус | Рекомендации |
|---|---|---|---|---|---|
| OQ6.1-1 | |||||
| OQ6.1-2 | Код FR6.1-1 | Требование говорит: баланс М-баллов показывается, только если он доступен для текущего клиента. В коде блок баллов показывается всегда: родитель передаёт баллы как число с запасным значением 0, поэтому клиент без баллов видит «0», а не пустое место — условие «если доступен» по сути не выполняется. \ features/order-client-card/ui/OrderClientCard.vue:30,68; widgets/order-form/model/useOrderFormStore.ts:112-118 | Бизнес (Герман) | Закрыт | Решение: показ «0» — осознанное поведение, блок баллов отображается всегда. Формулировка FR6.1-1 приведена к факту, статус изменён с «Частично» на «Реализовано». Доработок в коде не требуется. |
| OQ6.1-3 | Код FR6.1-4 | Требование говорит: при выходе интерфейс показывает подтверждение с кнопками «Остаться» и «Выйти». В коде подтверждения нет: нажатие на крестик (подпись «Выйти из аккаунта») сразу завершает сессию и уводит на экран авторизации; диалог с «Остаться»/«Выйти» в коде не найден. \ features/order-client-card/ui/OrderClientCard.vue:35-47,81-87; entities/auth/model/useAuth.ts:28-38 | Разработка (Владислав) | Закрыт | Решение: подтверждение выхода нужно, но не модальным диалогом — реализовать поповер у действия выхода в карточке клиента с Остаться и Выйти. Меньше визуального шума, чем модалка, и защищает от случайного выхода на шаге оформления. FR6.1-4 уточнён. |
| OQ6.1-4 | Код FR6.1-5 | Требование говорит: рядом с информацией о клиенте показывается сообщение «Вы заблокированы в данной партнерской зоне», если клиент заблокирован в текущей зоне. В коде такого состояния нет: в модели клиента и в ответе метода GetClientsByPartnerZoneId нет признака блокировки, сам текст сообщения нигде не встречается, карточка не получает признак блокировки. Есть только неиспользуемая константа «Аккаунт заблокирован» (общая, не про партнёрскую зону). \ entities/client/types/client.types.ts:10-20; shared/api/clients/api/clients.api.ts:14-24; constants/error-messages.ts:35 — не найдено за обход по карточке, модели клиента, клиентскому API и константам | Разработка (Владислав) | Закрыт | Решение: виджет уходит от IdentityService/GetAccount и переходит на новый метод GetClientWidget (создать). Метод берёт идентификатор партнерской зоны из токена, сам определяет аккаунт и возвращает данные клиента вместе с признаком блокировки в этой зоне. Это убирает из виджета сшивку двух источников (GetAccount + GetClientsByPartnerZoneId) и даёт недостающий признак одним ответом. Порядок работ: контракт и метод на бэкенде → переход виджета на новый метод → показ сообщения (FR6.1-5) и запрет бронирования (FR6.1-6). Разблокирует OQ6.1-5. \ текущие вызовы: server/api/auth/account.get.ts:12, shared/api/clients/api/clients.api.ts:42 |
| OQ6.1-5 | Код FR6.1-6 | Требование говорит: заблокированному клиенту интерфейс не даёт продолжить бронирование (оставляя возврат назад и выход). В коде продолжение не ограничивается блокировкой: кнопка «Забронировать» блокируется только на время создания заказа, признака блокировки клиента нет, заказ создаётся без такой проверки. \ widgets/booking/ui/OrderBaseForm.vue:88,325-337; widgets/order-form/model/useOrderFormStore.ts:255-294 · связать с OQ6.1-4 (нет самого признака блокировки) | Разработка (Владислав) | Закрыт | Решение: после перехода на GetClientWidget и появления признака блокировки — запрещать создание заказа заблокированному клиенту и показывать причину, оставляя доступными возврат назад и выход. Отдельно определить, ставится ли такая же проверка на стороне создания заказа, чтобы запрет нельзя было обойти в обход интерфейса. |
| OQ6.1-6 | Код FR6.1-3 | Что подтверждено: выход из аккаунта доступен прямо в блоке информации о клиенте — крестик в карточке вызывает выход и переводит на экран авторизации. Отдельной кнопки «сменить клиента» без полного выхода нет; по FR6.1-3 достаточно выхода, расхождения нет. \ features/order-client-card/ui/OrderClientCard.vue:35-47,81-87; entities/auth/model/useAuth.ts:28-38 | — | Подтверждено | Действий не требуется; при желании ввести «смену клиента» без выхода — завести отдельное требование. |
| OQ6.1-7 | Код вне BRD | Что нашли: в карточке клиента поверх аватара всегда показывается бейдж «PRO» — без условия, для любого клиента; в требованиях 6.1 такого элемента нет. \ features/order-client-card/ui/OrderClientCard.vue:17 | Бизнес (Герман) | Закрыт | Решение: бейдж убрать из интерфейса — смысловой нагрузки он не несёт и в требованиях его нет. Задача разработке: удалить элемент из карточки клиента. В BRD ничего не добавляем. |
| OQ6.1-8 | Код вне BRD (Не входит → Widget: 4.2 / 5.x) | Что нашли: FR6.1-2 приводит пример «у клиента есть сбор» как причину изменения цены при возврате, но расчёт заказа в виджете всегда идёт с выключенным учётом сборов (значение зафиксировано как «нет»), то есть сбор клиента в цене не применяется. \ widgets/order-form/model/useOrderFormStore.ts:196,282 | Бизнес | Перенесён в 4.2 | Решение 11.08.26: вопрос про сборы разбирается не отдельно, а вместе с полным перечнем персональных условий клиента, влияющих на Итого. Перенесён в Widget: 4.2, OQ4.2-1; в разделе 6.1 не дублируется. Пример «у клиента есть сбор» в FR6.1-2 останется или будет убран по итогам того разбора. |