CreateBookingDto
ID клієнта (якщо клієнт вже існує)
1client object
Дані для створення нового клієнта «на лету». Використовуйте замість clientId, якщо клієнт ще не створений.
Телефон клієнта
+380501234567Імʼя клієнта
МаріяПрізвище клієнта
ІваненкоID послуги
1ID співробітника. Обовʼязковий для beauty-індустрії (IndustryConfig.booking.staffOptional=false). Для індустрій з opt-out (auto_service, fitness) може бути не вказаний — резерв тоді створюється без привʼязки до людини.
1IDs ресурсів для бронювання (бокс, корт, кабінет…). Перевірка типів і capacity на бекенді.
[1,2]Галузеспецифічні структуровані дані: vehicleVin, patientCaseId, horseId, courseModule тощо. Жодних валідацій схеми тут — кожна індустрія описує свою.
Опційна тривалість у хвилинах для window_based послуг (auto_service). Для service_based ігнорується — береться з Service.duration.
90Sprint 4: ID групової сесії (yoga / lesson / workshop). Якщо вказано — startTime/endTime/staffId автоматично беруться з сесії, capacity перевіряється атомарно. Доступно лише для індустрій з IndustryConfig.features.groupSessions=true. Beauty — не використовує.
42Sprint E2: ціна, яку реально сплачує клієнт. Замінює service.price. Доступно лише для індустрій з IndustryConfig.features.customBookingPricing=true (equestrian тощо). Може бути 0 (безкоштовне заняття). Beauty — ігнорується.
500Sprint E2: фіксована виплата виконавцю (тренеру) за цей запис. Взаємовиключно з trainerPayoutPercent.
200Sprint E2: відсоток від price для виплати виконавцю (0..100). Взаємовиключно з trainerPayoutAmount.
40Час початку запису у форматі ISO 8601 з явним часовим поясом (наприклад "2024-01-15T11:30:00+03:00" або "2024-01-15T08:30:00Z"). На бекенді нормалізується та зберігається в UTC (timestamptz).
2024-01-15T10:00:00.000ZДжерело запису
Possible values: [online, phone, walk_in, admin, api]
onlineНотатки клієнта
Прошу майстра використовувати гіпоалергенні засобиCRM-онлі: дозволити паралельний запис на того самого тренера в той самий час (різні коні/клієнти) без створення групової сесії. Публічний запис ігнорує.
false{
"clientId": 1,
"client": {
"phone": "+380501234567",
"firstName": "Марія",
"lastName": "Іваненко"
},
"serviceId": 1,
"staffId": 1,
"resourceIds": [
1,
2
],
"industryData": {},
"durationOverride": 90,
"sessionId": 42,
"customPrice": 500,
"trainerPayoutAmount": 200,
"trainerPayoutPercent": 40,
"startTime": "2024-01-15T10:00:00.000Z",
"bookingSource": "online",
"notes": "Прошу майстра використовувати гіпоалергенні засоби",
"allowParallelStaffBooking": false
}