Kontentga o'tish

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.

offered ──claim──▶ claimed ──xodim yuklaydi──▶ loaded ──▶ en_route ──▶ arrived ──▶ completed
│ │ │
└─ expired └─ failed(code) ◀────────────────────────────────┘ istalgan payt: cancelled

POST /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'limi

Robotingiz 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'limi

POST /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.

Qabul 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.

Sitora’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 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 sizning completed xabaringizdan keyin buyurtma o’tishini o’zi qo’llaydi. Xabar arrived dan keyin sozlangan kechikishdan (park holati suratidagi auto_confirm_dwell_seconds) erta kelmasligi kerak — mehmon laganni olishi mumkin bo’lgan vaqtdan tezroq yakunlash arrival_dwell_pending bilan 409 qaytariladi.

Har 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.