Docs: sync booking-requests + Bookings IA + image_url after Back#59/Front#30. Fixes EventHub/EventHubSpec#12
This commit is contained in:
+13
-2
@@ -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` для текущего пользователя).
|
||||
|
||||
Reference in New Issue
Block a user