Тема
Bookings API
POST /v1/events/:id/book
Забронювати місця на подію.
Авторизація: Bearer <accessToken>
Тіло запиту
json
{
"qty": 2
}| Поле | Тип | Опис |
|---|---|---|
qty | number | Кількість місць (мін 1) |
Відповідь 201
json
{
"id": "booking-uuid",
"eventId": "event-uuid",
"userId": "user-uuid",
"qty": 2,
"status": "confirmed",
"qrToken": "signed-qr-token-string",
"createdAt": "2024-07-01T10:00:00Z"
}TIP
qrToken — підписаний HMAC-токен для QR-коду на чекін. Показуйте його як QR на сторінці бронювання.
Помилки
| Код | Причина |
|---|---|
400 | qty < 1 або перевищує доступну кількість |
409 | Бронювання вже існує для цього користувача |
403 | Приватна подія — користувач не запрошений |
GET /v1/me/bookings
Список бронювань поточного користувача.
Авторизація: Bearer <accessToken>
Query параметри
| Параметр | Тип | Опис |
|---|---|---|
status | string | confirmed / cancelled / pending |
upcoming | boolean | Тільки майбутні події |
Відповідь 200
json
{
"data": [
{
"id": "booking-uuid",
"event": {
"id": "event-uuid",
"title": "Jazz у парку",
"startAt": "2024-07-20T18:00:00Z",
"coverUrl": "https://cdn.pisd.uk/covers/uuid.jpg"
},
"qty": 2,
"status": "confirmed",
"qrToken": "signed-qr-token-string",
"createdAt": "2024-07-01T10:00:00Z"
}
]
}DELETE /v1/bookings/:id
Скасувати бронювання.
Авторизація: Bearer <accessToken> (власник бронювання або admin)
Відповідь 200
json
{
"id": "booking-uuid",
"status": "cancelled"
}Помилки
| Код | Причина |
|---|---|
403 | Не є власником бронювання |
404 | Бронювання не знайдено |
409 | Подія вже відбулась — скасування недоступне |
GET /v1/events/:id/bookings
Список бронювань події (для організатора або адміна).
Авторизація: Bearer <accessToken> (organizer або admin)
Query параметри
| Параметр | Тип | Опис |
|---|---|---|
status | string | Фільтр за статусом |
q | string | Пошук за ім'ям гостя |
Відповідь 200
json
{
"data": [
{
"id": "booking-uuid",
"user": {
"id": "user-uuid",
"name": "Іван Петров",
"avatar": "https://cdn.pisd.uk/avatars/uuid.jpg",
"phone": "+38099***4567"
},
"qty": 2,
"status": "confirmed",
"checkedIn": false,
"createdAt": "2024-07-01T10:00:00Z"
}
],
"meta": { "total": 30 }
}TIP
Номер телефону маскується — організатор бачить лише останні 4 цифри.