Направление работ: WebLk Код раздела: 4.2 Раздел: Контент > Площадки Статус: черновик Ответственный: Панкова Л.А. Версия: 0.2 Обновлено: 01.07.26


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

Данный раздел обеспечивает партнеру интерфейс для создания, просмотра и управления площадками в партнерской зоне.

Партнер создает площадку, редактирует ее данные, управляет медиа, райдером, удобствами, условиями работы, правилами, публикационным статусом и связанными блоками.

Раздел зависит от Back: 2.2 Объекты и предложения > Площадки партнеров.

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

Площадка партнера — помещение, привязанное к объекту партнера, на которое пользователь может оформить заказ.

Страница площадки — экран WebLk 4.2 с данными площадки и действиями по управлению площадкой.

Райдер площадки — описание оборудования, света, звука и других технических характеристик площадки.

Удобства площадки — параметры площадки для поиска клиентами: оборудование, тип площадки и интерьер.

Условия работы — настройки режима работы, уведомлений и формата работы площадки.

Публикационный статус — состояние площадки в сервисе: на модерации, опубликована, снята с публикации или в архиве.

3. Scope

Входит

S1: Просмотр страницы площадки S2: Создание площадки S3: Редактирование информации о площадке S4: Услуги размещения и продвижения S5: Статус модерации площадки S6: Снятие площадки с публикации S7: Публикация площадки S8: Архивирование площадки S9: Восстановление площадки из архива S10: Правила и условия площадки S11: Состояния интерфейса и адаптивы

Не входит

  • WebLk 4.1 Контент > Объекты
  • WebLk 4.2.1 Контент > Площадки > Модерация данных площадки
  • WebLk 4.4 Контент > Цены
  • WebLk 4.5 Контент > Позиции
  • WebLk 4.6 Контент > Скидки и акции
  • WebLk 3.4 Профиль партнера > Настройки правил работы
  • Back 2.2.1 — площадки, связанные одним расписанием
  • Back 2.4 / 2.5 / 2.6 / 2.7 — правила заказов, позиции, цены, скидки и баллы
  • Mobile, Widget и Catalog-отображение площадки для клиента
  • Backend/API-контракты, структура БД и техническая реализация

4. BR

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

5. Функциональные требования (UC + FR) {#5-funkcionalnye-trebovaniya-uc-fr}

FR – functional requirements, что интерфейс должен уметь делать по определенному UC.

IDCценарийФункциональное требованиеBRВесСтатус
S1: FR4.2-1Партнер открывает страницу площадкиИнтерфейс показывает название площадки, объект, цвет, описание, габариты, площадь, вместимость, схему, дополнительные материалы и статус доступности в сервисе.1Частично OQ4.2-5
S1: FR4.2-2Партнер просматривает медиа и описание площадкиИнтерфейс показывает фото и видео площадки, текстовый райдер, удобства, оборудование, тип площадки и интерьер.1Частично OQ4.2-10, OQ4.2-15
S1: FR4.2-3Партнер просматривает уведомления, условия работы и правилаИнтерфейс показывает условия работы (время и формат), адреса для уведомлений, типы уведомлений, правила оказания услуг, правила создания заказов, правила отмены и условия оплаты.1Частично OQ4.2-3, OQ4.2-4
S1: FR4.2-4Партнер просматривает связанные блоки площадкиИнтерфейс показывает связанные позиции, цены, внешние сервисы и связанные площадки без полного управления этими разделами.2Частично OQ4.2-20
S1: FR4.2-5Партнер просматривает промокоды и акции площадкиИнтерфейс показывает связанные промокоды и акции площадки с названием, периодом действия, скидкой и условиями активации.2Реализовано
S1: FR4.2-6Партнер запускает синхронизациюИнтерфейс позволяет запустить синхронизацию внешних сервисов или связанных площадок из блока “Синхронизация данных”. Подробная синхронизация описана в https://wiki.yandex.ru/homepage/d750da42741c/texnicheskaja-dokumentacija/brd/f0421948614f/3-profil-partnera/277e9836202c/2Не реализовано OQ4.2-19
S1: FR4.2-7Партнер просматривает показатели площадки (на будущую реализацию)Интерфейс показывает рейтинг, количество отзывов, добавления в избранное, актуальность информации и диапазон стоимости.3Не реализовано
S1: FR4.2-8Партнер просматривает список оборудованияИнтерфейс показывает в формате списка оборудование и услуги. С категорией, названием, фото, ценой, количеством и площадки2Частично OQ4.2-26
S2: FR4.2-9Партнер начинает создание площадкиИнтерфейс открывает сценарий создания площадки и показывает пошаговый процесс с кнопками отмены и продолжения.1Реализовано OQ4.2-38
S2: FR4.2-10Партнер заполняет основные данные площадкиИнтерфейс позволяет указать название, цвет, описание, габариты, площадь, вместимость, схему площадки.1Частично OQ4.2-11, OQ4.2-14
S2: FR4.2-11Партнер задает удобства площадкиИнтерфейс позволяет выбрать дополнительные характеристики для поиска клиентами: оборудование, тип площадки и интерьер.1Реализовано OQ4.2-10
S2: FR4.2-12Партнер заполняет райдерИнтерфейс позволяет описать технический райдер.1Реализовано OQ4.2-39
S2: FR4.2-13Партнер заполняет медиаИнтерфейс позволяет загрузить минимум 3 фото, выбрать заглавное фото и добавить видео.1Частично OQ4.2-6, OQ4.2-7
S2: FR4.2-14Партнер завершает создание площадкиИнтерфейс позволяет сохранить созданную площадку и показывает ее статус после создания.1Частично OQ4.2-8
S3: FR4.2-15Партнер открывает редактирование площадкиИнтерфейс открывает форму редактирования с полями названия, цвета, описания (не более 500 символов), габаритов, площади, вместимости, схемы.1Реализовано OQ4.2-40
S3: FR4.2-16Партнер сохраняет изменения площадкиИнтерфейс позволяет сохранить изменения и показывает уведомление, что новое название, описание или схема отобразятся в интерфейсах (после модерации в будущем).1Частично OQ4.2-9
S3: FR4.2-17Партнер редактирует райдер и удобстваИнтерфейс позволяет изменить текст райдера и выбранные удобства площадки.1Реализовано OQ4.2-41
S3: FR4.2-18Партнер меняет условия работы площадкиИнтерфейс позволяет изменить режим работы, адреса и типы уведомлений, а при изменении времени работы показывает плашку с пояснением влияния изменения на остальные площадки объекта.2Частично OQ4.2-3, OQ4.2-18
S3: FR4.2-19Партнер редактирует фото площадкиИнтерфейс позволяет добавить новые фотографии или видео, удалить старые и изменить их расположение.2Частично OQ4.2-23, OQ4.2-25
S3: FR4.2-20Партнер редактирует или добавляет дополнительные материалыИнтерфейс позволяет создать папки с дополнительными материалами и задать им название, разместить в них фото, видео, аудио или текстовый документ; изменить расположение или удалить.2Частично OQ4.2-23, OQ4.2-24
S4: FR4.2-21Партнер просматривает услуги размещения и продвижения (на будущую реализацию)Интерфейс показывает тариф размещения, стоимость размещения, услуги продвижения, сумму к оплате, статистику и действие оплаты или подключения.3Не реализовано
S5: FR4.2-22Партнер видит статус модерации площадки (на будущую реализацию)Интерфейс показывает статус модерации площадки, дату модерации и количество элементов, ожидающих проверки.3Не реализовано
S6: FR4.2-23Партнер снимает площадку с публикации (на будущую реализацию)Интерфейс показывает действие “Снять с публикации”, запрашивает подтверждение и после подтверждения переводит площадку в статус “Снята с публикации”.3Частично OQ4.2-16, OQ4.2-31
S7: FR4.2-24Партнер публикует площадку (на будущую реализацию)Интерфейс показывает действие “Опубликовать”, запрашивает подтверждение и предупреждает, что при изменениях можно опубликовать старый контент или новый после завершения модерации.3Частично OQ4.2-16
S8: FR4.2-25Партнер архивирует площадку (на будущую реализацию)Интерфейс показывает действие “Архивировать”, запрашивает подтверждение и предупреждает, что редактирование площадки будет недоступно до восстановления.3Частично OQ4.2-16, OQ4.2-17
S9: FR4.2-26Партнер восстанавливает площадку из архива (на будущую реализацию)Интерфейс показывает действие “Восстановить”, запрашивает подтверждение и позволяет выбрать публикацию вручную или автоматически после модерации.3Частично OQ4.2-16
S10: FR4.2-27Партнер открывает правила и условия площадкиИнтерфейс открывает страницу правил и условий для выбранной площадки и показывает правила оказания услуг, создания заказов, отмены и условий оплаты.

Настройка правил совершается как в https://wiki.yandex.ru/homepage/d750da42741c/texnicheskaja-dokumentacija/brd/f0421948614f/3-profil-partnera/efb00c15e244/ , по умолчанию применяются правила из объекта.
1Частично OQ4.2-12
S10: FR4.2-28Партнер просматривает правила площадкиИнтерфейс показывает действующие и архивные правила, стандартные правила объекта и площадки, к которым они применяются.1Частично OQ4.2-2, OQ4.2-13
S10: FR4.2-29Партнер возвращается к странице площадкиИнтерфейс позволяет вернуться из правил и условий на страницу выбранной площадки.2Частично OQ4.2-27
S11: FR4.2-30Данные площадки загружаютсяИнтерфейс показывает состояние загрузки для основных данных, медиа, условий работы, правил, позиций, цен, скидок и синхронизации.2Частично OQ4.2-22, OQ4.2-28
S11: FR4.2-31Часть данных площадки отсутствуетИнтерфейс показывает пустое состояние в блоках, где нет оборудования, услуг, цен, промокодов, акций, внешних сервисов или связанных площадок.2Частично OQ4.2-20
S11: FR4.2-32Партнер использует страницу на разных ширинах экранаИнтерфейс адаптирует страницу площадки, карточки, связанные блоки, формы редактирования и таблицы для desktop, laptop и tablet и mobile.2Частично OQ4.2-21, OQ4.2-29
S11: FR4.2-33Партнер выполняет действие с ошибкойИнтерфейс показывает ошибку в текущем контексте и не теряет данные формы или текущую площадку.2Частично OQ4.2-30

6. Открытые вопросы {#6-otkrytye-voprosy}

IDИсточникВопросКомуСтатус
OQ4.2-1Open

Подстраницы


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

Пин контекста: BRD 4.2 «Площадки» v0.2 · репозиторий musbooking_personal_account · commit b9a7a706 / ветка test · дата сверки 2026-07-15 · якорь: pages/content/rooms/[roomId]/, entities.fsd/room/, entities.fsd/room-folder/, features.fsd/room-drawer/, features.fsd/room-details/, widgets.fsd/room-drawer/, widgets.fsd/room-details-viewer/, shared.fsd/api/rooms/, shared.fsd/api-contracts/rooms/ (+ смежные widgets.fsd/work-conditions/, widgets.fsd/rules-tabs/, легаси stores/rooms.ts, classes/api/RoomsService.ts, components/UI/ImageManager.vue) Сводка: 40 вопросов — Open бизнесу 19 · Open разработке 3 · Закрывает PM 14 · Подтверждено 4. Отрезано находок обратного прохода: 12. Маршрутизация без сверки с гайдбуком (гайдбук на вход не передавался — там, где нужно решение «как должно быть», вопрос уходит бизнесу со статусом Open, а не закрывается сам). В коде площадка = room, объект = base. «Райдер» в интерфейсе — это поле equipment; «удобства» — поле features.

IDИсточникВопросКомуСтатусРекомендации
OQ4.2-2Код FR4.2-28Требование говорит: партнёр видит действующие и архивные правила площадки. В коде архивных правил не увидеть ни в одной из четырёх вкладок: во всех запросах правил признак «показывать архивные» жёстко выставлен в «нет» и переключателя для партнёра нет. Единственное место, где архивные записи запрашиваются, — справочник площадок для подписей «Применено к площадкам», а не сами правила. \ pages/content/rooms/[roomId]/booking-rules-settings/index.vue:626, components/PaymentMethods/PaymentTermsTab.vue:682, features.fsd/cancel-rules-management/ui/CancelRulesTab.vue:186, components/BookingRules/AppliedRulesSection.vue:146Бизнес (Герман)Open(А) Добавить переключатель «показывать архивные правила» во все четыре вкладки — приводит код к BRD, но нужен ответ, зачем партнёру архив правил и что он с ним делает. (Б) Убрать «архивные» из требования и оставить только действующие (рекомендуется как временный шаг) — сейчас архив правил не создаёт ценности ни в одном сценарии BRD, а требование веса 1 висит невыполненным. Решение бизнеса разблокирует оценку.
OQ4.2-3Код FR4.2-3Требование говорит: на странице площадки видны адреса для уведомлений и типы уведомлений (и по FR4.2-18 — редактируются). В коде у площадки уведомлений нет вообще: ни блока на экране, ни поля в модели площадки, ни поля в контракте обмена с сервером. Уведомления существуют только на уровне объекта — там есть и адрес, и дополнительные адреса, и галочки типов уведомлений. \ не найдено за обход features.fsd/room-drawer/, features.fsd/room-details/, widgets.fsd/room-details-viewer/, entities.fsd/room/types/room.types.ts, shared.fsd/api-contracts/rooms/rooms.schema.ts; реализация у объекта — features.fsd/base-drawer/ui/BaseNotificationsStep.vue:9,88Бизнес (Герман)Open(А) Признать, что уведомления настраиваются только на объекте, и убрать их из FR4.2-3 и FR4.2-18, дав на странице площадки ссылку на настройки объекта (рекомендуется) — соответствует и коду, и здравому смыслу: адрес уведомлений един для объекта. (Б) Завести уведомления на уровне площадки — это новая сущность и на фронте, и на бэке, оценивать отдельно. Ответ нужен до правки FR4.2-18.
OQ4.2-4Код FR4.2-3Требование говорит: интерфейс показывает условия работы площадки — время и формат. В коде формат работы («Онлайн-бронирование» / «По заявке») на странице площадки показывается, но всегда берётся из объекта, а переключатели отключены — партнёр видит формат объекта, а не площадки. В модели площадки собственное поле формата есть, но оно не читается. В коде оставлен комментарий «Формат работы - всегда из base». \ widgets.fsd/work-conditions/ui/WorkConditions.vue:31,95; неиспользуемое поле — entities.fsd/room/types/room.types.ts:97Бизнес (Герман)Open(А) Зафиксировать в BRD: формат работы — свойство объекта, на площадке показывается только справочно (рекомендуется) — так работает код, и поле в модели площадки тогда надо убрать как вводящее в заблуждение. (Б) Разрешить площадке свой формат работы — тогда нужно решить, что делать, когда площадка «по заявке», а объект «онлайн». Связать с OQ4.2-18 — тот же вопрос про приоритет объекта над площадкой.
OQ4.2-5Код FR4.2-1Требование говорит: на странице площадки показываются дополнительные материалы. В коде карточка «Дополнительные материалы» на экране есть, но она ничего не показывает: внутри пять нарисованных значков (картинка, документ, музыка, видео, часы), жёстко зашитых в вёрстку и никак не связанных с данными. Ни одного реального материала партнёра на карточке не видно — карточка работает только как кнопка, открывающая редактор материалов. \ features.fsd/room-details/info-editor/ui/RoomInfoEditor.vue:95-114; открытие редактора — pages/content/rooms/[roomId]/index.vue:155Бизнес (Герман)Open(А) Показывать на карточке реальное содержимое: количество папок и материалов, значки по фактическим типам файлов (рекомендуется) — требование веса 1 сейчас не выполняется, а данные о папках уже загружаются. (Б) Признать карточку точкой входа и переписать FR4.2-1 как «показывает доступ к дополнительным материалам». Нужно решение бизнеса: карточка-витрина или карточка-кнопка.
OQ4.2-6Код FR4.2-13Требование говорит: при создании площадки партнёр может добавить видео. В коде видео при создании добавить нельзя: поддержка видео в загрузчике есть, но она включается отдельным признаком, который шаг создания не передаёт, поэтому по умолчанию выключена. Видео не попадает в список выбираемых файлов, а при перетаскивании выдаётся ошибка «Загрузка видео отключена». При этом шаг называется «Фото и видео», а подсказка обещает «Поместите изображение или видео» — партнёр видит обещание, которого интерфейс не выполняет. \ features.fsd/room-drawer/ui/RoomMediaStep.vue:25-46,38, components/UI/ImageManager.vue:262,305-314,492-495; название шага — widgets.fsd/room-drawer/ui/RoomDrawer.vue:172Бизнес (Герман)Open(А) Включить видео на шаге создания (рекомендуется) — правка малая (передать признак поддержки видео), а сейчас интерфейс обещает то, чего не делает. (Б) Убрать видео из FR4.2-13 и переименовать шаг в «Фото» — тогда надо решить, где партнёр вообще добавляет видео впервые. В любом варианте текст шага и подсказку надо привести в соответствие.
OQ4.2-7Код FR4.2-13Требование говорит: партнёр выбирает заглавное фото. В коде явного выбора нет: заглавным всегда считается первое фото в списке, над ним просто рисуется подпись «Заглавное фото». Кнопки «сделать заглавным» или отдельного признака у фотографии не существует — единственный способ сменить заглавное фото — перетащить нужное на первое место. \ components/UI/ImageManager.vue:738-740,49-54; перетаскивание — features.fsd/room-drawer/ui/RoomMediaStep.vue:33,40Бизнес (Герман)Open(А) Считать «перетащить на первое место» достаточной реализацией выбора и уточнить формулировку FR4.2-13 (рекомендуется) — механизм рабочий и понятный, отдельная кнопка дублировала бы его. (Б) Добавить явное действие «сделать заглавным» — нужно, если порядок фото и заглавное фото должны задаваться независимо. Внимание: сейчас порядок фотографий на сервере не сохраняется — см. OQ4.2-23, без его решения вариант (А) работать не будет.
OQ4.2-8Код FR4.2-14Требование говорит: после создания интерфейс показывает статус созданной площадки. В коде статус не показывается, и показывать нечего: у площадки нет никакого статуса, кроме признака «в архиве», а в данных на создание поля статуса нет вовсе. Сообщения об успешном создании тоже нет — единственный признак, что всё получилось, это переход на страницу новой площадки. \ widgets.fsd/room-drawer/ui/RoomDrawer.vue:435-446,473-478; отсутствие статуса в модели — entities.fsd/room/types/room.types.ts:133-146, entities.fsd/room/types/room.types.ts:63Бизнес (Герман)Open(А) Определить, какой статус партнёр должен видеть после создания («На модерации»? «Черновик»? «Опубликована»?), и завести его в модели (рекомендуется как целевое) — сейчас у площадки нет жизненного цикла, только «в архиве / не в архиве»; это же блокирует S5–S9, см. OQ4.2-16. (Б) Ограничиться сообщением «Площадка создана» и убрать «статус» из FR4.2-14 — дёшево, закрывает пробел в обратной связи, но не закрывает вопрос жизненного цикла. Связать с OQ4.2-16 (разблокирующий).
OQ4.2-9Код FR4.2-16Требование говорит: после сохранения изменений партнёр видит уведомление, что новое название, описание или схема отобразятся в интерфейсах (в будущем — после модерации). В коде такого уведомления нет нигде в контуре площадки. Более того, при сохранении основных данных, райдера, удобств, медиа и времени работы партнёр не получает вообще никакого подтверждения — сообщение об успехе показывается только в редакторе дополнительных материалов. \ не найдено за обход по текстам «модерац / отобраз / появятся / после проверки» в widgets.fsd/, features.fsd/, entities.fsd/, pages/, shared.fsd/; единственное сообщение об успехе — features.fsd/room-drawer/ui/RoomMaterialsStep.vue:487Бизнес (Герман)Open(А) Добавить подтверждение сохранения на всех шагах и текст про отображение изменений (рекомендуется) — отсутствие любой обратной связи при сохранении это самостоятельный дефект, независимо от модерации. (Б) Отложить текст про модерацию до появления самой модерации (S5), но подтверждение сохранения добавить сейчас. Нужно решение бизнеса по формулировке текста.
OQ4.2-10Код FR4.2-2, FR4.2-11Требование говорит: интерфейс показывает и позволяет выбрать оборудование, тип площадки и интерьер. В коде таких трёх понятий не существует как отдельных полей — есть единый механизм «удобств»: категории и их значения полностью приходят справочником с сервера, а интерфейс рисует столько групп, сколько пришло. Появятся ли группы с названиями «Оборудование», «Тип площадки», «Интерьер» — определяется данными сферы на сервере, по коду фронта это проверить нельзя. \ features.fsd/room-drawer/ui/RoomAmenitiesStep.vue:80-83,121-162; отображение групп — features.fsd/room-details/info-editor/ui/RoomInfoEditor.vue:207,400-427; намерение зафиксировано в features.fsd/room-drawer/index.ts:7Бизнес (Герман)Open(А) Уточнить в BRD, что оборудование / тип площадки / интерьер — это категории справочника удобств, а не отдельные поля, и приложить требование к содержимому справочника (рекомендуется) — механизм есть и работает, расходится только язык описания. (Б) Требовать три жёстко заданные секции в интерфейсе — противоречит текущей архитектуре, где справочник настраивается на сервере. Не проверяется статикой: фактическое наличие этих трёх категорий нужно смотреть в данных сферы, а не в коде.
OQ4.2-11Код FR4.2-10Требование говорит: партнёр «может указать» название, цвет, описание, габариты, площадь, вместимость и схему — обязательным по тексту выглядит только заполнение как таковое. В коде габариты (длина, ширина, высота) и вместимость фактически обязательны: пока каждое из них не больше нуля, кнопка «Продолжить» заблокирована. При этом поля не помечены как обязательные, а текст ошибки «Заполните все обязательные поля» вычисляется, но на экран не выводится — партнёр видит неактивную кнопку без объяснения причины. \ features.fsd/room-drawer/model/useRoomValidation.ts:97-102,176; невыведенная ошибка — widgets.fsd/room-drawer/ui/RoomDrawer.vue:241Бизнес (Герман)Open(А) Подтвердить обязательность габаритов и вместимости, зафиксировать это в BRD и пометить поля в интерфейсе (рекомендуется) — правило разумное (без габаритов площадку не найти в поиске), не хватает только честной подписи. (Б) Сделать поля необязательными, если бизнес допускает площадку без габаритов. В обоих случаях текст ошибки надо начать показывать — см. OQ4.2-30.
OQ4.2-12Код FR4.2-27Проблема: требование говорит, что по умолчанию к площадке применяются правила объекта. Код это умеет — подстановка правил объекта написана, причём в двух местах, — но никогда не выполняется. Оба места сначала проверяют, что известен идентификатор объекта, и берут его из адреса страницы; в адресе страницы площадки такого параметра нет (там только идентификатор площадки), поэтому проверка не проходит и загрузка правил не запускается. Следствие: на странице правил площадки правила объекта не подставляются, а в блоке правил на карточке площадки текстовые правила не загружаются вообще — партнёр видит пустоту. \ components/Settings/Tab/MapItemRulesTab.vue:250,254,262, widgets.fsd/rules-tabs/ui/tabs/ObjectRulesTab.vue:111,149; маршрут без параметра объекта — pages/content/rooms/[roomId]/booking-rules-settings/index.vue, shared.fsd/config/routes/pageRoutes.ts:27Разработка (Владислав)Закрывает PMЗакрываю сам: брать идентификатор объекта не из адреса страницы, а из данных загруженной площадки (поле связи с объектом уже есть), либо передавать его свойством компонента — сейчас ObjectRulesTab вообще не объявляет входные свойства, поэтому передаваемые ему значения теряются → тикет в Bitrix. Разблокирующий: пока это не починено, OQ4.2-13 и половина FR4.2-28 непроверяемы вживую.
OQ4.2-13Код FR4.2-28Проблема: требование говорит про стандартные правила объекта, применяемые к площадке. В интерфейсе галочка «Буду использовать стандартные правила объекта» есть, но она ничего не делает: обработчик её переключения — пустая заготовка с комментарием «TODO: Загрузить стандартные правила из стора/API». Автоматическое включение галочки (когда у площадки своих правил нет, а у объекта есть) написано, но недостижимо по той же причине, что и в OQ4.2-12. В блоке правил на карточке площадки та же галочка вдобавок отключена и служит только индикатором. \ components/Settings/Tab/MapItemRulesTab.vue:165-169,271-274, widgets.fsd/rules-tabs/ui/tabs/ObjectRulesTab.vue:6-12Разработка (Владислав)Закрывает PMЗакрываю сам: после починки OQ4.2-12 дописать обработчик переключения галочки (подставлять/снимать правила объекта) → тикет в Bitrix. Связать с OQ4.2-12 — общая первопричина, чинить одним заходом.
OQ4.2-14Код FR4.2-10Проблема: требование говорит, что при создании площадки партнёр указывает схему. Поле схемы на шаге есть, PDF выбирается, имя файла показывается — но при создании файл на сервер не уходит и молча теряется: выбранный файл кладётся в черновик и попадает в итоговый набор данных, однако завершающий код создания его не читает и загружает только фотографии. Загрузка схемы написана только для режима редактирования. Партнёр прикрепляет схему на создании и получает площадку без схемы, без единого сообщения. \ features.fsd/room-drawer/ui/RoomMainInfoStep.vue:364, features.fsd/room-drawer/model/useRoomDraft.ts:378, widgets.fsd/room-drawer/ui/RoomDrawer.vue:435-471; рабочая загрузка в режиме редактирования — features.fsd/room-drawer/ui/RoomMainInfoStep.vue:505-541Разработка (Владислав)Закрывает PMЗакрываю сам: после успешного создания площадки загружать файл схемы из черновика тем же способом, что и в режиме редактирования → тикет в Bitrix. Попутно: файл не-PDF сейчас отбрасывается молча (RoomMainInfoStep.vue:361) — добавить сообщение.
OQ4.2-15Код FR4.2-2Проблема: требование говорит, что интерфейс показывает фото и видео площадки. Видеофайлы в список медиа попадают, но выводятся тем же способом, что и фотографии — как картинка. Проигрывателя или превью для видео нет, и из числа кликабельных элементов видео явно исключено. Партнёр видит на месте видео пустой прямоугольник. \ features.fsd/room-details/info-editor/ui/RoomInfoEditor.vue:374,183-186,180Разработка (Владислав)Закрывает PMЗакрываю сам: выводить видео проигрывателем (или превью с кнопкой воспроизведения) вместо тега картинки → тикет в Bitrix. Связать с OQ4.2-6: если бизнес решит, что видео не нужно, оба вопроса снимаются вместе.
OQ4.2-16Код FR4.2-23, FR4.2-24, FR4.2-25, FR4.2-26Что нашли: BRD объявляет снятие с публикации, публикацию, архивирование и восстановление четырьмя отдельными сценариями «на будущую реализацию». В коде все четыре уже работают — но слиты в один переключатель «в архиве / не в архиве» на одной кнопке. Публикация — это просто снятие признака архива; отдельного статуса «Снята с публикации» не существует, как и промежуточного состояния «восстановлена, но не опубликована»; выбора «опубликовать вручную или автоматически после модерации» при восстановлении нет; предупреждения про старый/новый контент нет. Публикационный статус как отдельная сущность в системе отсутствует — есть только признак архива и дата архивации. \ features.fsd/room-details/info-editor/model/useRoomArchive.ts:15,30-41,47-67, features.fsd/room-details/info-editor/ui/RoomInfoEditor.vue:138-147,151-161, entities.fsd/room/types/room.types.ts:62-64; отсутствие статусов — не найдено за обход shared.fsd/api-contracts/rooms/rooms.schema.ts, shared.fsd/api/rooms/rooms.api.tsБизнес (Герман)Open(А) Признать, что «снят с публикации» и «в архиве» — одно и то же состояние, и переписать S6–S9 как два действия вместо четырёх (рекомендуется как ближайший шаг) — это то, что реально работает сегодня, и BRD станет честным. (Б) Развести публикацию и архив в разные состояния — это полноценный жизненный цикл площадки (черновик → на модерации → опубликована → снята → в архиве), затрагивает бэкенд и связан с модерацией (S5). Разблокирующий: от этого ответа зависят OQ4.2-8, OQ4.2-17, OQ4.2-31 и статусы FR4.2-22…26.
OQ4.2-17Код FR4.2-25Требование говорит: при архивировании партнёра предупреждают, что редактирование площадки будет недоступно до восстановления. В коде нет ни предупреждения, ни самого ограничения: архивная площадка остаётся полностью редактируемой. Признак «в архиве» влияет ровно на две вещи — подпись «Площадка заархивирована» вместо списка интерфейсов и цвет кнопки. Ни один блок страницы (условия работы, правила, цены, позиции, скидки, связанные площадки) не блокируется, все кнопки редактирования работают. \ features.fsd/room-details/info-editor/ui/RoomInfoEditor.vue:125,141,291, widgets.fsd/room-details-viewer/ui/RoomDetailsViewer.vue:15; текст предупреждения — features.fsd/room-details/info-editor/model/useRoomArchive.ts:40Бизнес (Герман) / Разработка (Владислав)Open(А) Запретить редактирование архивной площадки и добавить предупреждение (рекомендуется, если подтверждается (А) в OQ4.2-16) — иначе требование остаётся декларацией, а данные архивной площадки можно менять незаметно. (Б) Разрешить редактирование в архиве осознанно и убрать предупреждение из FR4.2-25 — допустимо, если архив это «скрыт от клиентов», а не «заморожен». Сначала нужен ответ бизнеса по смыслу архива (OQ4.2-16), затем реализация.
OQ4.2-18Код FR4.2-18Требование говорит: при изменении времени работы площадки показывается плашка с пояснением, как изменение повлияет на остальные площадки объекта. В коде плашки нет, а логика устроена противоположным образом: время площадки не влияет на объект — наоборот, оно обязано укладываться внутрь времени работы объекта (начало не раньше, конец не позже), и поля выбора времени ограничены часами объекта. При нарушении сохранение молча не срабатывает — причина уходит только в технический журнал. \ features.fsd/room-drawer/ui/RoomWorkingHoursStep.vue:127,143,157,59; не найдено за обход по текстам «повлия / влия / остальны / все площадк / других площадк» в widgets.fsd/, features.fsd/, entities.fsd/, pages/, shared.fsd/Бизнес (Герман)Open(А) Переписать FR4.2-18 под фактическую модель: время площадки ограничено временем объекта, и показывать партнёру именно это ограничение (рекомендуется) — модель в коде непротиворечива, а требование, похоже, писалось от другой картины мира (площадки делят одно расписание). (Б) Если имелся в виду сценарий связанных одним расписанием площадок (Back 2.2.1, вне scope этого раздела) — уточнить и вынести требование туда. В любом варианте: молчаливую блокировку сохранения заменить видимым сообщением — см. OQ4.2-30.
OQ4.2-19Код FR4.2-6Требование говорит: партнёр запускает синхронизацию внешних сервисов или связанных площадок из блока «Синхронизация данных» на странице площадки. В коде такого блока на странице площадки нет — страница состоит ровно из четырёх групп (основные данные, условия работы и правила, цены/позиции/скидки, связанные площадки). Сами методы синхронизации существуют и работают, но вызываются только со страницы интеграций в профиле партнёра. Синхронизации связанных площадок не найдено нигде. \ widgets.fsd/room-details-viewer/ui/RoomDetailsViewer.vue:1-43; работающая синхронизация на другом экране — classes/api/IntegrationsService.ts:209,292,353, pages/partner-profile/tools/integrations.vue:92,134Бизнес (Герман)Open(А) Добавить блок «Синхронизация данных» на страницу площадки, переиспользовав существующие методы (рекомендуется, если партнёр действительно синхронизирует площадку поштучно). (Б) Признать, что синхронизация живёт на странице интеграций, и заменить FR4.2-6 ссылкой-переходом туда — дешевле и не плодит вторую точку управления. Техническое ограничение к сведению: методы синхронизации не возвращают результат, нужен повторный запрос данных (IntegrationsService.ts:350-351).
OQ4.2-20Код FR4.2-4, FR4.2-31Требование говорит: на странице площадки показываются связанные внешние сервисы, а при их отсутствии — пустое состояние. В коде блока «Внешние сервисы» на странице площадки нет вообще, поэтому нет и пустого состояния. Остальные связанные блоки требования (позиции, цены, связанные площадки) на месте и работают. Внешние сервисы как понятие в интерфейсе есть только на дашборде и на странице интеграций. \ widgets.fsd/room-details-viewer/ui/RoomDetailsViewer.vue:1-43; не найдено за обход по «externalService / внешн. сервис / integration» в контуре площадки; вне контура — components/dashboard/Integrations.vue:10, pages/partner-profile/tools/integrations.vue:84Бизнес (Герман)Open(А) Добавить блок внешних сервисов площадки с пустым состоянием — если партнёру важно видеть, из каких сервисов приезжает эта конкретная площадка. (Б) Убрать «внешние сервисы» из FR4.2-4 и FR4.2-31, оставив их на странице интеграций (рекомендуется) — привязка сервисов делается на уровне партнёра, а не площадки; тогда же снимается часть OQ4.2-19. Связать с OQ4.2-19 — один и тот же вопрос «нужен ли контур интеграций на странице площадки».
OQ4.2-21Код FR4.2-32Требование говорит: страница адаптируется под четыре ширины экрана — desktop, laptop, tablet и mobile. В коде ступеней три: mobile (до 767px), tablet (768–1279px) и всё остальное от 1280px. Отдельной ступени «laptop» не существует нигде в разделе — ноутбук и большой монитор получают одинаковую вёрстку. Вдобавок в проекте сосуществуют три несогласованных набора ширин: вёрстка раздела (767/1279), блок цен со своей ступенью 1600px и общий механизм определения ширины экрана с набором 600/960/1280/1920/2560, который в разделе площадок не используется ни разу. \ widgets.fsd/room-details-viewer/ui/RoomDetailsViewer.vue:153,187,216; чужая ступень в ценах — widgets.fsd/prices-list/ui/RoomPriceCard.vue:403; неиспользуемый механизм — composables/useBreakpoint.ts:14Бизнес (Герман)Open(А) Убрать laptop из требования, зафиксировав три ступени (рекомендуется) — так свёрстан весь раздел; введение четвёртой ступени задним числом это переработка всех экранов раздела. (Б) Ввести laptop как отдельную ступень — тогда нужно определить границу (1280–1919?) и что именно на ней меняется. Отдельно от продуктового решения: согласовать три набора ширин в один — см. OQ4.2-29.
OQ4.2-22Код FR4.2-30Требование говорит: состояние загрузки показывается для восьми блоков — основных данных, медиа, условий работы, правил, позиций, цен, скидок и синхронизации. В коде список не сходится: у медиа отдельного состояния загрузки нет (блок накрыт общим скелетоном карточки, а догрузка файла схемы идёт вообще без индикатора); блока синхронизации не существует (см. OQ4.2-19); у цен используется скелетон из чужого раздела, а специально сделанный скелетон цен площадки — мёртвый код, он экспортируется, но никем не используется; скелетон правил отрабатывает вхолостую, потому что сама загрузка правил в этом месте закомментирована и всегда возвращает пустой список. Зато есть скелетон «Связанных площадок», которого в списке BRD нет. \ features.fsd/room-details/info-editor/ui/RoomInfoEditor.vue:3,164,313, shared.fsd/ui/skeletons/room/index.ts:14, features.fsd/room-details/prices-list/ui/RoomPricesList.vue:1, widgets.fsd/prices-list/ui/PricesList.vue:3, composables/useVenueRules.ts:104, features.fsd/room-details/shared-rooms/ui/SharedRoomsList.vue:3Разработка (Владислав)Open(А) Привести список BRD к факту: убрать синхронизацию, добавить «Связанные площадки», и завести отдельное состояние загрузки для медиа (рекомендуется). (Б) Реализовать все восемь как написано — упирается в OQ4.2-19. Отдельно и независимо: удалить мёртвый скелетон цен площадки или начать его использовать вместо чужого, и разобраться с закомментированной загрузкой правил (useVenueRules.ts:91-104) — связать с OQ4.2-12.
OQ4.2-23Код FR4.2-19, FR4.2-20Проблема: требование говорит, что партнёр может изменить расположение фотографий и материалов. Перетаскивание работает и порядок меняется на экране, но на сервер он не отправляется: при сохранении уходят только новые файлы, а позиция уже загруженных не обновляется — после перезагрузки страницы порядок возвращается к прежнему. В папках материалов ещё жёстче: все файлы отправляются с одинаковой позицией «0», то есть порядок внутри папки не сохраняется в принципе. \ features.fsd/room-drawer/ui/RoomMediaStep.vue:269, components/UI/ImageManager.vue:659, features.fsd/room-drawer/ui/RoomMaterialsStep.vue:460; не найдено за обход: вызова обновления позиции существующих файлов в RoomMediaStep.vue, RoomMaterialsStep.vue, ImageManager.vueРазработка (Владислав)Закрывает PMЗакрываю сам: при сохранении отправлять новый порядок для всех файлов (а не только для новых), в папках — передавать фактическую позицию вместо нуля → тикет в Bitrix. Важно: от этого зависит OQ4.2-7 — если заглавным считается первое фото, а порядок не сохраняется, то и заглавное фото не сохраняется.
OQ4.2-24Код FR4.2-20Проблема: требование говорит, что в папку материалов можно положить фото, видео, аудио или текстовый документ. Фактически диалог выбора файла пропускает только jpg, jpeg, png и mp4 — текстовый документ выбрать невозможно, хотя подсказка обещает «Поместите изображение, видео или документ». Аудио заявлено, но сломано: формат mp3 попал в список видео-форматов, и тип файла собирается как несуществующий video/mp3 вместо audio/mpeg — такой фильтр не пропустит ни один реальный mp3. \ features.fsd/room-drawer/ui/RoomMaterialsStep.vue:86,89-90, components/UI/ImageManager.vue:305; подсказка — features.fsd/room-drawer/ui/RoomMaterialsStep.vue:55Разработка (Владислав)Закрывает PMЗакрываю сам: исправить тип для mp3 на audio/mpeg и добавить документы (pdf/doc/txt) в список принимаемых форматов — обработчик уже умеет распознавать тип «документ», он просто недостижим на этом экране → тикет в Bitrix. Если бизнес не хочет документов в материалах — тогда правка BRD и подсказки, но текущее состояние неверно в любом случае.
OQ4.2-25Код FR4.2-19Проблема: требование говорит, что партнёр удаляет старые фотографии в форме редактирования. Удаление работает, но происходит сразу на сервере, в момент клика по корзине — ещё до нажатия «Сохранить». Кнопка «Отменить» удалённый файл не возвращает: партнёр, передумавший и закрывший форму, всё равно потеряет фотографию. В комментарии к коду при этом заявлено «сначала удаления, потом загрузки при сохранении» — этой логики в коде нет. \ components/UI/ImageManager.vue:607; несоответствующий комментарий — features.fsd/room-drawer/ui/RoomMediaStep.vue:8-11Разработка (Владислав)Закрывает PMЗакрываю сам: копить удаления и применять их при сохранении (как заявлено в комментарии), либо — если это дорого — предупреждать «файл будет удалён сразу и безвозвратно» → тикет в Bitrix. Первый вариант предпочтительнее: он делает «Отменить» честной кнопкой.
OQ4.2-26Код FR4.2-8Проблема: требование говорит, что интерфейс показывает оборудование и услуги списком с категорией, названием, фото, ценой, количеством и площадкой. Все шесть атрибутов выводятся, но есть скрытая потеря данных: позиция показывается только если у неё заполнена и категория, и группа. Позиции без категории молча выпадают из списка — при этом в подсчёте «список пуст или нет» они учитываются. То есть возможно состояние «блок не пустой, но не показывает ни одной позиции». Отдельно: BRD говорит «в формате списка», а в коде оборудование и услуги разведены по двум вкладкам и свёрнуты в раскрывающиеся группы. \ features.fsd/room-details/positions-list/ui/RoomPositionsList.vue:146,139,100-104Разработка (Владислав)Закрывает PMЗакрываю сам: показывать позиции без категории в группе «Без категории» вместо молчаливого отбрасывания, либо согласовать подсчёт пустоты с фактической выборкой → тикет в Bitrix. Про вкладки вместо единого списка: считаю формулировку BRD неточной, а не код неверным → правка BRD (вкладки «Оборудование» / «Услуги» удобнее одного списка).
OQ4.2-27Код FR4.2-29Проблема: требование говорит, что партнёр возвращается со страницы правил на страницу выбранной площадки. Кнопка «назад» есть, но она возвращает по истории браузера, а не на конкретную площадку: если партнёр попал на правила по прямой ссылке (а такие ссылки поддерживаются — вкладка передаётся в адресе) или перезагрузил страницу, кнопка уведёт куда угодно, только не на площадку. Хлебные крошки ведут мимо: они указывают на общий список объектов, а не на площадку. Готовый способ построить адрес страницы площадки в проекте есть и не используется. \ pages/content/rooms/[roomId]/booking-rules-settings/index.vue:3,239,242,524, components/UI/layout/BackTitle.vue:34; неиспользуемый помощник — shared.fsd/config/routes/pageRoutes.ts:26Разработка (Владислав)Закрывает PMЗакрываю сам: возвращать адресно на страницу площадки по её идентификатору (помощник pageRoutes.roomById уже есть) и починить хлебные крошки, добавив в них площадку → тикет в Bitrix. Продуктового выбора здесь нет — требование однозначно.
OQ4.2-28Код FR4.2-30Проблема: состояние загрузки блока «Скидки» показывается по условию «грузятся промокоды И грузятся акции». Это два независимых запроса: как только завершится любой из них, скелетон исчезнет, хотя второй ещё в пути — партнёр увидит мигание пустого состояния или половину данных. Ожидается «ИЛИ». \ features.fsd/room-details/promos-list/ui/RoomPromosList.vue:3,97,108Разработка (Владислав)Закрывает PMЗакрываю сам: заменить «И» на «ИЛИ» в условии показа скелетона скидок → тикет в Bitrix. Однострочная правка, продуктового выбора нет.
OQ4.2-29Код FR4.2-32Проблема: требование говорит про адаптацию таблиц и связанных блоков. Страница правил и условий — единственный экран раздела без единого правила адаптации, при этом ширины в ней зашиты жёстко в пикселях (колонка 400px, боковая панель 420px, отступ 42px, высота через вычитание 200px). На планшете и телефоне эта раскладка не перестраивается. Без адаптации также остались блоки «Связанные площадки», «Скидки» и виджет правил. \ pages/content/rooms/[roomId]/booking-rules-settings/index.vue:573,583,820,826,851; блоки без адаптации — features.fsd/room-details/shared-rooms/, features.fsd/room-details/promos-list/, widgets.fsd/rules-tabs/Разработка (Владислав)Закрывает PMЗакрываю сам: адаптировать страницу правил и три блока по действующим ступеням раздела (767/1279) → тикет в Bitrix. Заодно свести три несогласованных набора ширин к одному — см. OQ4.2-21 (объём зависит от ответа бизнеса про laptop).
OQ4.2-30Код FR4.2-33Проблема: требование говорит, что при ошибке партнёр видит её в текущем контексте. Фактически сообщение об ошибке показывается только при архивировании. Везде остальное ошибки гасятся молча: при создании и сохранении площадки стоят пустые перехватчики с комментарием «прерываем создание без вывода в консоль»; при загрузке правил, сохранении условий оплаты и справочников ошибка уходит только в технический журнал; на странице площадки ветки ошибки нет вообще — результат запроса читается без признака ошибки. Вдобавок все методы обмена с сервером по площадкам сами гасят ошибки и возвращают «пусто» или «неуспех», из-за чего интерфейс не может отличить сбой сервера от «не сохранилось». Данные формы при ошибке действительно не теряются, но случайно: сброс черновика стоит в ветке успеха, до него просто не доходит. Черновик нигде не сохраняется и стирается при уходе со страницы. \ widgets.fsd/room-drawer/ui/RoomDrawer.vue:479-481,493-494,473, pages/content/rooms/[roomId]/booking-rules-settings/index.vue:648-650,685,770, pages/content/rooms/[roomId]/index.vue:137,74, shared.fsd/api/rooms/rooms.api.ts:59-62,172-177,218-221, entities.fsd/room/store/room.api.ts:67-69; работающий пример — features.fsd/room-details/info-editor/model/useRoomArchive.ts:20,24Разработка (Владислав)Закрывает PMЗакрываю сам: распространить механизм сообщений, уже работающий в архивировании, на создание/сохранение площадки и загрузку правил; перестать гасить ошибки в слое обмена с сервером (пробрасывать наверх); добавить ветку ошибки на странице площадки → тикет в Bitrix. Разблокирующий для читаемости интерфейса: от этого зависят видимость сообщений в OQ4.2-11, OQ4.2-14 и OQ4.2-18 — там правила уже работают, просто молча.
OQ4.2-31Код FR4.2-23Проблема: одна и та же операция названа в интерфейсе двумя разными словами. Партнёр нажимает кнопку «Снять с публикации», подтверждает в окне «Вы уверены что хотите снять объект с публикации?» — и получает всплывающее сообщение «Площадка архивирована». В обратную сторону: «Опубликовать» → «Площадка разархивирована». Тексты ошибок при этом снова публикационные: «Не удалось снять площадку с публикации». Всё это в пределах одного файла. Отдельно: в тексте окна подтверждения есть звёздочка «…и совершать бронирования*», но сноски к ней нигде нет. \ features.fsd/room-details/info-editor/model/useRoomArchive.ts:32-33,37-41,53,58, shared.fsd/lib/errors-text/errorsText.ts:61Разработка (Владислав)Закрывает PMЗакрываю сам: привести тексты к одному словарю и убрать висящую звёздочку → тикет в Bitrix. Какое именно слово оставить — зависит от OQ4.2-16: если бизнес подтвердит, что публикация и архив это одно состояние, оставляем «снять с публикации» как более понятное партнёру; если разведёт — правка будет больше косметической.
OQ4.2-32Код вне BRDЧто нашли: на странице площадки одновременно живут три независимых источника данных об одной и той же площадке: новый (карточка основных данных, создание, сохранение, архивирование), старый стор (блок «Связанные площадки», вкладки правил, окно редактирования условий работы) и третий стор для цен, который сам зависит от старого. Кэши между ними не связаны: обновление площадки через новый механизм не сбрасывает старый кэш, а сохранение через старый не сбрасывает новый — партнёр может увидеть разные версии одной площадки в соседних блоках одного экрана. Отдельный риск: старое сохранение работает по принципу «поле не передано — возьму из своего кэша» (в коде это помечено как «КРИТИЧНО»), то есть при рассинхроне может записать устаревшие значения поверх свежих. \ features.fsd/room-details/shared-rooms/ui/SharedRoomsList.vue:95,110,126,195, widgets.fsd/rules-tabs/ui/tabs/ObjectRulesTab.vue:58,137, components/UI/modals/WorkConditionsEditModal.vue:405, stores/rooms.ts:205,293, stores/prices.ts:12,251, entities.fsd/room/model/useRoomEntityQueries.ts:143,161, widgets.fsd/room-details-viewer/ui/RoomDetailsViewer.vue:46-54Разработка (Владислав)Open(А) Достроить миграцию: перевести «Связанные площадки», вкладки правил и окно условий работы на новый механизм данных (рекомендуется) — пометка «мигрирован» в classes/api/todo.md:143 не соответствует факту, миграция остановилась на полпути. (Б) Минимальный шаг: при сохранении через любой из механизмов сбрасывать кэш второго — лечит симптом, не причину. Это техническая находка вне BRD, но она объясняет часть «плавающих» дефектов раздела.
OQ4.2-33Код вне BRDЧто нашли: архивирование площадки — не отдельная операция, а обычное сохранение площадки с признаком «в архиве». Отдельного метода «архивировать» на сервере (в терминах фронтового контракта) не существует. Следствия: нельзя выдать раздельные права «редактировать» и «архивировать», нельзя отличить их в журнале действий, и любое сохранение площадки потенциально может изменить её архивность, потому что признак архива объявлен обычным необязательным полем формы. Тот же приём применён и в соседних разделах (позиции, цены, акции, заказы) — то есть это сквозная договорённость продукта, а не решение для площадок. \ shared.fsd/api/rooms/rooms.api.ts:228-230,237-239, shared.fsd/api-contracts/rooms/rooms.schema.ts:157; сквозной приём — pages/content/prices/index.vue:704, features.fsd/position-drawer/ui/PositionDrawer.vue:843Разработка (Владислав)Open(А) Оставить как есть и зафиксировать в BRD, что архив — свойство площадки, а не отдельная операция (рекомендуется) — так устроен весь продукт, точечное исключение для площадок создаст разнобой. (Б) Завести отдельные операции архивирования/восстановления — оправдано только вместе с (Б) в OQ4.2-16 (полноценный жизненный цикл). Требует решения на стороне бэкенда — вне scope этого BRD.
OQ4.2-34Код вне BRDЧто нашли: мастер создания площадки состоит из четырёх шагов (основные данные, райдер, удобства, фото), шага «Время работы» в нём нет — при создании время работы всегда отправляется пустым. Партнёр задаёт часы только после создания, отдельным действием на карточке. BRD сценарий S2 про время работы молчит, поэтому расхождением это не считается, но пробел заметный: только что созданная площадка не имеет расписания. \ widgets.fsd/room-drawer/ui/RoomDrawer.vue:445,153-158; отдельный режим редактирования часов — pages/content/rooms/[roomId]/index.vue:149Бизнес (Герман)Open(А) Добавить шаг «Время работы» в мастер или подставлять часы объекта по умолчанию (рекомендуется второе) — площадка без расписания бесполезна, а часы объекта уже известны и всё равно ограничивают площадку (см. OQ4.2-18). (Б) Оставить как есть и дописать в S2, что расписание задаётся после создания — честно, но оставляет партнёра с нерабочей площадкой сразу после мастера.
OQ4.2-35Код вне BRDЧто нашли: на медиа площадки действуют ограничения, которых нет в BRD: не более 10 файлов, форматы только jpg/jpeg/png/webp, размер до 50 МБ, изображения автоматически сжимаются до 1920×1080 с качеством 0.85. В папках материалов — до 50 файлов по 50 МБ. Отдельно: описание шага задаёт неписаное правило контента — «Добавьте минимум 3 цветные фотографии, без людей и контактов», но ни цветность, ни отсутствие людей и контактов кодом не проверяются — это требование к партнёру, а не к интерфейсу. \ features.fsd/room-drawer/ui/RoomMediaStep.vue:36,37, components/UI/ImageManager.vue:254, features.fsd/room-drawer/ui/RoomMaterialsStep.vue:81; текст правила — widgets.fsd/room-drawer/ui/RoomDrawer.vue:178Бизнес (Герман)Open(А) Зафиксировать лимиты (10 фото, форматы, 50 МБ, сжатие) в FR4.2-13 (рекомендуется) — они реально работают и влияют на партнёра, а в требованиях их нет. (Б) Пересмотреть лимиты, если 10 фото мало для площадки. Отдельно нужно решение: правило «цветные, без людей и контактов» — это модерация (S5) или просто рекомендация в тексте? Сейчас оно ничем не обеспечено.
OQ4.2-36Код вне BRDЧто нашли: площадь площадки рассчитывается автоматически как длина × ширина, пока партнёр не введёт её вручную; после ручного ввода авторасчёт отключается, а при очистке поля — возобновляется. В BRD (FR4.2-10) площадь описана как обычное поле ввода, про автоматический расчёт не сказано. Также не описан цвет по умолчанию — при создании подставляется красный B61D1C. \ features.fsd/room-drawer/ui/RoomMainInfoStep.vue:328-343,321-325,204-210Бизнес (Герман)Open(А) Дописать оба правила в FR4.2-10 (рекомендуется) — поведение удобное и рабочее, требование просто отстаёт от кода. (Б) Отказаться от авторасчёта, если бизнес считает, что площадь не всегда прямоугольная и подстановка вводит в заблуждение. Замечание: подсказки-помощники у габаритов сейчас содержат текст-заглушку «Текст» (RoomMainInfoStep.vue:75) — их всё равно надо заполнить.
OQ4.2-37Код вне BRDПроблема: два из семи блоков в папке раздела — пустые заготовки, которые никогда не выполняются. RoomRulesTabs.vue содержит только заголовок «Room Rules Tabs», номер площадки и три пометки «TODO: скопировать табы»; RoomWorkConditions.vue — устаревшая копия рабочего блока условий работы без загрузки данных. Оба экспортируются наружу, но ни один компонент их не подключает — реально работают их двойники из папки виджетов. Риск: при сверке или доработке легко принять заготовку за реализацию и сделать вывод «функциональность есть». \ features.fsd/room-details/rules-tabs/ui/RoomRulesTabs.vue:3,16,20, features.fsd/room-details/work-conditions/ui/RoomWorkConditions.vue; рабочие двойники — widgets.fsd/rules-tabs/ui/RulesTabs.vue, widgets.fsd/work-conditions/ui/WorkConditions.vue, подключение — widgets.fsd/room-details-viewer/ui/RoomDetailsViewer.vue:51-52Разработка (Владислав)Закрывает PMЗакрываю сам: удалить обе заготовки вместе с их экспортами (заодно — мёртвый скелетон цен площадки из OQ4.2-22 и неиспользуемые методы получения площадок по партнёрской зоне shared.fsd/api/rooms/rooms.api.ts:100) → тикет в Bitrix. Продуктового решения не требует, это уборка.
OQ4.2-38Код FR4.2-9Что подтверждено: создание площадки открывается отдельным пошаговым сценарием и показывает прогресс. Мастер состоит из четырёх шагов — «Основные настройки», «Райдер», «Удобства», «Фото и видео», — с индикатором прогресса, кнопкой «Отменить» и кнопкой продолжения, которая на последнем шаге становится «Создать». Возврат на предыдущий шаг — стрелкой в шапке. Перескочить вперёд через незаполненный шаг нельзя. Точка входа — кнопка «Создать площадку» в списке площадок объекта. \ widgets.fsd/room-drawer/ui/RoomDrawer.vue:10,28,104,153-158,172,185-190,205-210, features.fsd/base-details/platforms-list/ui/BasePlatformsList.vue:76,240, pages/content/rooms/[roomId]/index.vue:86,93ПодтвержденоРасхождения нет. Оговорка к сведению: отдельной кнопки «Назад» в нижней части нет — только стрелка в шапке; если BRD подразумевал кнопку в одном ряду с «Отменить», это отдельная мелкая правка.
OQ4.2-39Код FR4.2-12Что подтверждено: заполнение технического райдера реализовано отдельным шагом мастера — «Райдер» с описанием «Опишите технический райдер площадки» и большим текстовым полем с примером (пианино, микшер, мониторы, микрофоны). Поле обязательно к заполнению. \ features.fsd/room-drawer/ui/RoomEquipmentStep.vue:7-17,84-88,105, features.fsd/room-drawer/model/useRoomValidation.ts:115-118, widgets.fsd/room-drawer/ui/RoomDrawer.vue:172,175ПодтвержденоРасхождения нет. Оговорка для разработки: в интерфейсе это «Райдер», а в данных поле называется equipment; поле rider в модели существует, но не используется — читается только как запасной вариант при открытии на редактирование (useRoomDraft.ts:243). Терминология путает, но на поведение не влияет.
OQ4.2-40Код FR4.2-15Что подтверждено: редактирование площадки открывается тем же окном, что и создание, но в режиме правки: прогресс скрыт, кнопка — «Сохранить», открывается кликом по нужной карточке на странице площадки сразу на нужном шаге. Все семь полей требования на месте и редактируются: название, цвет (с палитрой и ручным вводом кода), описание, длина/ширина/высота, площадь, вместимость, схема (загрузка, замена, удаление PDF). \ pages/content/rooms/[roomId]/index.vue:85,139, widgets.fsd/room-drawer/ui/RoomDrawer.vue:9,205, features.fsd/room-drawer/ui/RoomMainInfoStep.vue:7,18,57,87,114,123,133,496ПодтвержденоРасхождения нет. Оговорка: в отличие от создания, здесь схема сохраняется корректно (см. OQ4.2-14 — там она теряется). К сведению разработки: при сохранении, если в форме схемы нет, а на сервере есть — существующая схема удаляется (RoomMainInfoStep.vue:535); при непрогретом черновике это потенциальная потеря схемы.
OQ4.2-41Код FR4.2-17Что подтверждено: райдер и удобства редактируются. Клик по карточке «Райдер» открывает шаг с текстом райдера, клик по карточке «Удобства» — шаг с выбором удобств чипами по группам, множественный выбор; оба сохраняются на сервер. \ features.fsd/room-drawer/ui/RoomEquipmentStep.vue:9,105, features.fsd/room-drawer/ui/RoomAmenitiesStep.vue:31,243, features.fsd/room-details/info-editor/ui/RoomInfoEditor.vue:195,199ПодтвержденоРасхождения нет. К сведению разработки: сохранение любого шага отправляет площадку целиком и дочитывает недостающие поля из кэша — в коде это отмечено комментарием «API требует ВСЕ поля, иначе сбрасывает неотправленные» (RoomWorkingHoursStep.vue:195, RoomAmenitiesStep.vue:243, RoomEquipmentStep.vue:105). При холодном кэше это риск затирания данных — связать с OQ4.2-32.

Отрезанные находки обратного прохода (12)

Найдены и осознанно не вынесены в вопросы — техническая мелочь, плумбинг или чужой scope. Перечислены, чтобы усечение не читалось как «всё покрыто»:

  1. Сигналы «площадка заархивирована / разархивирована» отправляются из карточки, но никто их не слушает — заготовка под будущий сценарий (RoomInfoEditor.vue:303-304).
  2. Метод получения площадок по партнёрской зоне и его обёртка — мёртвый код, ноль вызовов (rooms.api.ts:100, useRoomEntityQueries.ts:110). Частично покрыто OQ4.2-37.
  3. Старые методы создания площадки в легаси-слое — мёртвый код (stores/rooms.ts:33, classes/api/RoomsService.ts:40).
  4. Ответ на создание площадки принимается в четырёх разных формах (строка, три варианта объекта) — признак нестабильного контракта (rooms.api.ts:155-170).
  5. Порядок карточек площадок в списке объекта хранится только на клиенте, на сервер не уходит (stores/rooms.ts:386) — чужой scope: WebLk 4.1 Объекты.
  6. Описание виджета создания устарело и не соответствует фактическим параметрам (widgets.fsd/room-drawer/README.md:17-22).
  7. Два шага мастера пишут черновик через метод, помеченный как устаревший, с предупреждением в журнал (RoomAmenitiesStep.vue:296, RoomEquipmentStep.vue:158).
  8. Контракт площадки пропускает неизвестные поля с сервера (rooms.schema.ts:110) — важная оговорка: отсутствие модерации на фронте не доказывает её отсутствия на бэкенде; проверка модерации — предмет Back-сверки, не этого раздела.
  9. Файлы в папках материалов удаляются дважды — сразу из загрузчика и повторно при сохранении по накопленным ключам (RoomMaterialsStep.vue:444, ImageManager.vue:607).
  10. Направление операции архивирования вычисляется с приоритетом черновика над серверными данными (RoomInfoEditor.vue:291) — кнопка скрыта вне режима просмотра, поэтому не стреляет.
  11. Синхронизация черновика и формы на первом шаге защищена от зацикливания таймером 400 мс поверх задержки 300 мс — хрупкая гонка (RoomMainInfoStep.vue:249-251).
  12. У режима редактирования нет собственного адреса страницы — режимы хранятся в памяти и не отражаются в адресной строке (pages/content/rooms/[roomId]/index.vue:85-90); заход на создание без параметров объекта в адресе тихо обрывает сохранение (index.vue:129).

1 item under this folder.