Docs: sync booking-requests + Bookings IA + image_url after Back#59/Front#30. Fixes EventHub/EventHubSpec#12

This commit is contained in:
2026-07-27 15:21:12 +03:00
parent cc469d5698
commit 7c21fa2aef
8 changed files with 157 additions and 9 deletions
+13 -2
View File
@@ -171,6 +171,8 @@ Legacy: прямой `POST /v1/calendars/:id/specialists` **не использ
(иначе `400`).
- **Confirm/decline booking:** владелец — любые booking календаря; `active` specialist — только
booking на событиях, где `event.specialist_id` = его `user_id`.
- **Inbox к подтверждению:** `GET /v1/user/booking-requests` агрегирует pending по тем же
правилам (owner — все события своих календарей; specialist — только свои слоты).
#### Фаза 2 (вне текущего контракта реализации)
- `calendar_share` (`read` | `write` | `admin`): не путать с follow, specialist_invite и платной subscription.
@@ -453,10 +455,18 @@ src/
`nickname`, `timezone`, `phone`, `avatar_url`, `preferences`; смена пароля —
пара `current_password` + `password` (неверный текущий → `403`). Нельзя менять
email/role/status; неизвестные поля → `400`. Ответ — полный профиль как GET.
- `GET /v1/user/bookings` — бронирования пользователя.
- `GET /v1/user/bookings` — бронирования пользователя **как участника**.
- `GET /v1/user/booking-requests` — pending-заявки к подтверждению, где текущий
пользователь — **owner** календаря события или **assigned specialist**
(`event.specialist_id` = user и specialist active). Ответ — массив объектов
booking + `role` (`owner`|`specialist`) + вложенный `event`
(`id`, `calendar_id`, `calendar_title`, `title`, `start_time`, `duration`,
`specialist_id`). Confirm/decline — существующий `PUT /v1/bookings/:id`.
- `GET /v1/user/reviews` — отзывы пользователя.
- `GET /v1/user/following` — календари, которые пользователь отслеживает (follow).
- `GET /v1/search` — поиск; пустой запрос (только auth + пагинация/`type`) — discovery tops.
В calendar-результатах — `image_url` (если задан на календаре). Upload/multipart
**не** входит в контракт: поле URL.
- `GET /v1/calendars` — список календарей.
- `POST /v1/calendars` — создать календарь (`commercial` → подписка/trial; иначе `402`).
- `GET /v1/calendars/:id` — календарь (`following`, `booking_open` для текущего контекста).
@@ -482,7 +492,8 @@ src/
- `POST /v1/events/:id/bookings` — запись на событие.
- `GET /v1/events/:id/bookings` — список бронирований события (владелец).
- `GET /v1/bookings/:id` — статус бронирования.
- `PUT /v1/bookings/:id` — подтвердить/отклонить бронирование (владелец).
- `PUT /v1/bookings/:id` — подтвердить/отклонить (`confirm`|`decline`); владелец
любые booking календаря; active specialist — только события со своим `specialist_id`.
- `DELETE /v1/bookings/:id` — отменить бронирование (участник).
- `POST /v1/reviews` — создать отзыв.
- `GET /v1/reviews` — список отзывов (поле `my_vote` для текущего пользователя).