Berish vazifalari
Berish vazifasi — bitta jismoniy reys: ushbu buyurtma laganini shu stolga olib borish yoki bu buyurtmani yetkazish manziliga eltish. Vazifalarni Sitora taklif qiladi, sizning kontrolleringiz qabul qiladi va qat’iy holat mashinasi bo’ylab boshqaradi.
Hayotiy sikl
“Hayotiy sikl” bo'limioffered ──claim──▶ claimed ──xodim yuklaydi──▶ loaded ──▶ en_route ──▶ arrived ──▶ completed │ │ │ └─ expired └─ failed(code) ◀────────────────────────────────┘ istalgan payt: cancelledoffered → claimed
“offered → claimed” bo'limiPOST /serving-tasks/{id}/claim/. Birinchi da’vo yutadi; yutqazilgan poyga
already_claimed kodi bilan 409 qaytaradi; muddati o’tgan taklif oynasi
offer_expired kodi bilan 410 qaytaradi. Muddati o’tgan takliflar odamlarga
qaytadi — muddat o’tishini qayta urinish kerak bo’lgan xato deb hisoblamang.
claimed → loaded xodim tomonidan tasdiqlanadi
“claimed → loaded xodim tomonidan tasdiqlanadi” bo'limiRobotingiz berish joyida kutadi; odam Sitora Pro’da lagan manifestga mos
kelishini tasdiqlaydi. Siz loaded haqida xabar bera olmaysiz — urinish
status_not_reportable kodi bilan 400 qaytaradi. Ovqat uchun javobgarlikni
odam beradi, mashina uni o’zi e’lon qilmaydi.
loaded → en_route → arrived → completed
“loaded → en_route → arrived → completed” bo'limiPOST /serving-tasks/{id}/report/ va {"status": "..."}. Xabarlar qat’iy
tartibda; tartibsiz xabar task_<joriy_holat> kodi bilan (masalan,
task_claimed) va vazifaning joriy holatini ko’rsatuvchi izoh bilan 409
qaytaradi. Har qanday xabarga ixtiyoriy telemetry obyektini qo’shish mumkin;
u vazifaning hodisalar jurnalida saqlanadi.
failed
“failed” bo'limiQabul qilingandan keyingi istalgan holatdan kodlangan sabab bilan xabar qilinadi:
failure_code |
Ma’nosi |
|---|---|
obstacle_blocked |
Yo’l to’silgan va tiklab bo’lmaydi. |
hardware_fault |
Mexanik yoki elektr nosozlik. |
navigation_lost |
Joylashuvni aniqlash yo’qoldi. |
payload_disturbed |
Lagan yoki yuk yo’lda buzildi. |
battery_critical |
Reysni tugatishga quvvat yetmaydi. |
operator_abort |
Operatoringiz aralashdi. |
other |
Boshqa har qanday holat — reason qo’shing. |
Nosozlik xavfsiz: buyurtma darhol inson jarayoniga qaytadi va xodimlar ogohlantiriladi. Nosozliklar haqida halol va darhol xabar bering.
cancelled
“cancelled” bo'limiSitora’dan keladi — xodim buyurtmani birinchi berib qo’ydi, buyurtma bekor
qilindi yoki xodim reysni bekor qildi. Reysni to’xtating va bazaga qayting.
loaded dan keyingi bekor qilish laganni olish uchun xodimlarni ogohlantiradi.
Yakunlash va tasdiqlash
“Yakunlash va tasdiqlash” bo'limiYakunlash buyurtma holatini hech qachon to’g’ridan-to’g’ri yozmaydi. Keyin nima bo’lishini filialning tasdiqlash qoidasi hal qiladi:
human_confirmed(sukut bo’yicha) — xodimlar buyurtmani Sitora Pro’da odatdagidek beradi; ularning tasdig’i siklni yopadi va vazifaga qayta bog’lanadi.auto_confirm— server sizningcompletedxabaringizdan keyin buyurtma o’tishini o’zi qo’llaydi. Xabararriveddan keyin sozlangan kechikishdan (park holati suratidagiauto_confirm_dwell_seconds) erta kelmasligi kerak — mehmon laganni olishi mumkin bo’lgan vaqtdan tezroq yakunlasharrival_dwell_pendingbilan409qaytariladi.
Manifest
“Manifest” bo'limiHar bir vazifa ish tavsifini olib yuradi — va boshqa hech nimani:
{ "order_display_number": 118, "leg": "dine_in_tray", "items": [ { "name": "Grilled trout", "quantity": "1" }, { "name": "Green tea", "quantity": "2" } ], "dining_spot": { "id": 12, "number": 4, "label": "Table 4", "spot_type": "table" }}Kuryerlik bosqichi manifestlari dining_spot o’rniga delivery_address olib
yuradi. Mehmon yozuvi, telefon raqami, buyurtma izohi, narx yoki to’lov
ma’lumotlari hech qachon bo’lmaydi — bu maydonlar manifestga umuman o’qilmaydi.
Manifest faqat so’rov endpointlarida beriladi, u yerda hisob ma’lumotingiz har bir o’qishda tekshiriladi. U vebhukda hech qachon yuborilmaydi.