docs: sync calendar follow API and Front UX. Refs EventHub/EventHubFront#9

This commit is contained in:
2026-07-20 22:11:21 +03:00
parent 8204894f63
commit 5cc2bcf736
2 changed files with 21 additions and 2 deletions
+7 -1
View File
@@ -54,7 +54,10 @@ Deep-link на календарь, владельцем которого явл
- Выбор события открывает карточку действий: mobile — bottom sheet; desktop — боковая панель. Действия зависят от роли (owner / participant).
- Без выбранного события — панель «О календаре» (описание, title/meta, рейтинг, отзывы).
Форма отзыва на календарь/событие — только при confirmed booking; жалоба доступна без записи.
На чужом календаре — CTA **«Отслеживать» / Follow** (не путать с платной «Подписка»);
follow не открывает форму отзыва.
- На чужом `/c/:id` — CTA «Мой календарь» и таб Calendar не `aria-current` (intent `browse`).
- Список отслеживаемых: `/following` (из «Ещё»).
- Открытие события — `navigate` push (не `replace`), чтобы Back возвращал к календарю.
- Owner: WS subscribe на активный календарь; `PUT` события из карточки; `PUT` календаря на `/calendars`.
- Поиск (`/search`): query/filters в URL params (восстановление при возврате); chip type фильтрует
@@ -91,6 +94,7 @@ Deep-link на календарь, владельцем которого явл
- `/bookings` — мои бронирования (deep-link в `/c/.../e/...`)
- `/calendars` — управление своими календарями (CRUD)
- `/more` — вторичное меню + mood switcher
- `/following` — отслеживаемые чужие календари (follow; не платная Подписка)
- `/reviews`, `/subscription`, `/tickets`, `/profile`
Redirects: `/discover``/search`; `/calendars/:id``/c/:id`; `/calendars/:id/events/:eventId``/c/:id/e/:eventId`.
@@ -110,7 +114,9 @@ Redirects: `/discover` → `/search`; `/calendars/:id` → `/c/:id`; `/calendars
### 5.4. Календари
- Список своих: `GET /v1/calendars`
- CRUD: `POST/PUT/DELETE /v1/calendars`, `GET /v1/calendars/:id`
- CRUD: `POST/PUT/DELETE /v1/calendars`, `GET /v1/calendars/:id` (поле `following`)
- Follow чужого: `POST/DELETE /v1/calendars/:id/follow`, список `GET /v1/user/following`
(UI: «Отслеживать» в about, страница `/following`; не путать с `/subscription`)
- Просмотр коммерческого чужого календаря по id (доступ по правилам бэка)
- HTML month view владельца: `GET /v1/calendars/:calendar_id/view?month=YYYY-MM` — при переключении виджета на **прошедший месяц** (owner + вид «Месяц») автоматически подменяет клиентский grid серверным HTML (live/архив, задача #15). Текущий и будущие месяцы — React-виджет по `GET …/events`.
- Создание `commercial` требует активной подписки (ответ 402 → экран подписки)