Xizmatlar va jadval
Xizmatlar
Xizmatlar — bu tashkilotingizning yozilish mumkin bo'lgan takliflari. Har bir xizmatning o'z davomiyligi, narxi va uni qaysi xodimlar ko'rsata olishi belgilanadi.
Xizmat yaratish
POST /api/org/services
Authorization: Bearer your-token
Content-Type: application/json
{
"name": "Deep Tissue Massage",
"description": "60-minute full-body deep tissue massage",
"duration": 60,
"price": 150000,
"category_id": 2,
"buffer_time": 15,
"color": "#6366f1"
}
Maydonlar ma'lumotnomasi:
| Maydon | Tur | Tavsif |
|---|---|---|
name | string | Mijozlarga ko'rsatiladigan xizmat nomi |
description | string | Qisqa tavsif (1–3 gap) |
duration | integer | Davomiyligi (daqiqalarda) |
price | integer | Valyutaning eng kichik birligidagi narx |
category_id | integer | Turkum bo'yicha guruhlash (ixtiyoriy) |
buffer_time | integer | Qabuldan keyingi tanaffus, daqiqalarda (tozalash, yo'l) |
color | string | Kalendarda ko'rsatish uchun Hex rang |
prepay_required | boolean | Yozilish paytida to'lovni talab qilish |
prepay_amount | integer | Belgilangan depozit summasi (agar prepay_required bo'lsa) |
max_advance_days | integer | Bu xizmatga necha kun oldin yozilish mumkin |
min_lead_hours | integer | Yozilishdan oldin talab etiladigan minimal soatlar |
is_active | boolean | Xizmat ko'rinadigan va yozilish mumkin bo'lgan holatdami |
Xizmat turkumlari
Yozilish sahifangizda tartibni yaxshilash uchun xizmatlarni turkumlarga guruhlang:
GET /api/org/services/categories
Turkumlar butun tashkilotingiz bo'ylab umumiy bo'ladi va mijozlarga xizmatlar ro'yxatida yo'l topishga yordam beradi.
Xizmatlar bo'yicha maslahatlar
- Davomiylik aniqligi — Kam baholasangiz bo'shliqlar paydo bo'ladi; ko'p baholasangiz slotlarni yo'qotasiz. O'zingizni vaqt bilan tekshiring.
- Bufer vaqti — Xonani tayyorlash, izoh yozish yoki tayyorgarlik uchun doim bufer qo'shing. Hatto 5–10 daqiqa ham shoshqaloqlikning oldini oladi.
- Narx — Mijoz to'laydigan narxni belgilang. Depozitdan foydalansangiz,
prepay_amountni depozit summasiga qo'ying vaprepay_required: trueqiling. - Ranglar — Xizmat turkumlariga turli ranglar bering — bu xodimlar kalendarini o'qishni ancha osonlashtiradi.
Jadvallar
Jadval xodim qabullarni qachon qabul qila olishini belgilaydi. Jadval belgilanmaguncha o'sha xodim uchun hech qanday slot yaratilmaydi.
Jadval yozuvini yaratish
POST /api/org/schedule
Authorization: Bearer your-token
Content-Type: application/json
{
"staff_id": 1,
"day_of_week": 1,
"start_time": "09:00",
"end_time": "18:00"
}
day_of_week: 0 = yakshanba, 1 = dushanba, ..., 6 = shanba.
Jadvalni ko'rish
GET /api/org/schedule?staff_id=1
Jadval yozuvini yangilash
PUT /api/org/schedule/{id}
Content-Type: application/json
{
"start_time": "10:00",
"end_time": "19:00"
}
Jadval yozuvini o'chirish
DELETE /api/org/schedule/{id}
To'liq hafta namunasi
1-raqamli xodim uchun odatiy dushanba–juma, 9:00–18:00 jadvali:
[
{ "staff_id": 1, "day_of_week": 1, "start_time": "09:00", "end_time": "18:00" },
{ "staff_id": 1, "day_of_week": 2, "start_time": "09:00", "end_time": "18:00" },
{ "staff_id": 1, "day_of_week": 3, "start_time": "09:00", "end_time": "18:00" },
{ "staff_id": 1, "day_of_week": 4, "start_time": "09:00", "end_time": "18:00" },
{ "staff_id": 1, "day_of_week": 5, "start_time": "09:00", "end_time": "18:00" }
]
Bandlik istisnolari
Istisnolar muayyan sanalar uchun odatdagi jadvalni bekor qiladi — bayramlar, dam olish kunlari yoki maxsus ish vaqtlari uchun qulay.
Istisno yaratish
POST /api/org/availability/exceptions
Authorization: Bearer your-token
Content-Type: application/json
{
"staff_id": 1,
"date": "2026-05-01",
"is_day_off": true,
"reason": "National holiday"
}
Kunning bir qismi uchun (boshqa ish vaqti):
{
"staff_id": 1,
"date": "2026-12-31",
"is_day_off": false,
"start_time": "09:00",
"end_time": "14:00",
"reason": "New Year's Eve — half day"
}
Istisnolar ro'yxati
GET /api/org/availability/exceptions?staff_id=1
Maslahatlar:
- Yil boshida barcha ma'lum bayramlar uchun istisnolarni yaratib qo'ying
- Xodim kasal bo'lsa, o'sha kun uchun
is_day_off: truebilan istisno yarating — mavjud qabullar saqlanadi va vaqtini qayta belgilash mumkin - Istisnolar o'z sanasi uchun odatdagi jadvaldan ustun turadi
Slotlar qanday hisoblanadi
Slot kalkulyatori quyidagilarni hisobga oladi:
- Xodim jadvali — qachon ishlashi (kun, boshlanish va tugash vaqtlari)
- Bandlik istisnolari — muayyan sanalar uchun o'zgartirishlar
- Mavjud qabullar — band qilingan slotlar bloklanadi
- Xizmat davomiyligi — slot uzunligi xizmatga mos keladi
- Bufer vaqti — har bir qabuldan keyin qo'shiladi
- Tashkilot sozlamalari — oldindan yozilish cheklovlari, slot intervali, minimal muddat
Slotlar start_time, end_time va bo'sh xodimning staff_id si bilan qaytariladi.
Bo'sh slotlarni tekshirish
Mijozlar (va siz, API orqali) slotlarni tekshirishi mumkin:
GET /api/booking/{slug}/slots?service_id=1&date=2026-04-01
Yoki oraliq uchun:
GET /api/booking/{slug}/slots/range?service_id=1&start_date=2026-04-01&end_date=2026-04-07
Kalendarni ko'rish
Tashkilot kalendari barcha xodimlar bo'yicha barcha qabullarni ko'rsatadi:
GET /api/org/appointments/calendar?start=2026-04-01&end=2026-04-30
Oylik/haftalik kalendar ko'rinishini chizishga mos ravishda, sana bo'yicha guruhlangan qabullarni qaytaradi.