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 останется или будет убран по итогам того разбора.

0 items under this folder.