feat: sledování objednávek přes Wolt
CI / Generate TypeScript types (push) Successful in 13s
CI / Server unit tests (push) Successful in 25s
CI / Build server (push) Successful in 28s
CI / Build client (push) Successful in 41s
CI / Playwright E2E tests (push) Successful in 1m47s
CI / Build and push Docker image (push) Successful in 53s
CI / Notify (push) Successful in 2s
CI / Generate TypeScript types (push) Successful in 13s
CI / Server unit tests (push) Successful in 25s
CI / Build server (push) Successful in 28s
CI / Build client (push) Successful in 41s
CI / Playwright E2E tests (push) Successful in 1m47s
CI / Build and push Docker image (push) Successful in 53s
CI / Notify (push) Successful in 2s
Vedle Bolt Food jde nově sledovat i objednávka z Woltu — stačí u objednané skupiny vložit odkaz z track.wolt.com. Logika sledování je zobecněná do registru rozvozových služeb (trackingProviders.ts): každá služba umí vytáhnout kód ze sdílecího odkazu a dotázat se svého API, scheduler i stepper jsou společné. - pole skupiny bolt* přejmenována na tracking* + nové trackingProvider - endpoint /groups/setBoltTracking → /groups/setTracking - Wolt: čas doručení z delivery_eta v časové zóně objednávky, 404 ukončí sledování, stav kurýra odvozen z is_delivering/is_delivering_other_order - DEV simulace zůstává jen pro Bolt Food
This commit is contained in:
+2
-2
@@ -142,8 +142,8 @@ paths:
|
||||
$ref: "./paths/groups/setState.yml"
|
||||
/groups/updateTimes:
|
||||
$ref: "./paths/groups/updateTimes.yml"
|
||||
/groups/setBoltTracking:
|
||||
$ref: "./paths/groups/setBoltTracking.yml"
|
||||
/groups/setTracking:
|
||||
$ref: "./paths/groups/setTracking.yml"
|
||||
/groups/updateFees:
|
||||
$ref: "./paths/groups/updateFees.yml"
|
||||
|
||||
|
||||
@@ -1,21 +0,0 @@
|
||||
post:
|
||||
operationId: setBoltTracking
|
||||
summary: Nastaví nebo zruší sledování objednávky Bolt Food (pouze zakladatel).
|
||||
requestBody:
|
||||
required: true
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
type: object
|
||||
required:
|
||||
- id
|
||||
properties:
|
||||
id:
|
||||
description: ID skupiny
|
||||
type: string
|
||||
shareUrl:
|
||||
description: Sdílecí URL objednávky Bolt Food (https://food.bolt.eu/sharedActiveOrder/...). Prázdná hodnota sledování zruší.
|
||||
type: string
|
||||
responses:
|
||||
"200":
|
||||
$ref: "../../api.yml#/components/responses/ClientDataResponse"
|
||||
@@ -0,0 +1,24 @@
|
||||
post:
|
||||
operationId: setTracking
|
||||
summary: Nastaví nebo zruší sledování objednávky u rozvozové služby (pouze zakladatel).
|
||||
requestBody:
|
||||
required: true
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
type: object
|
||||
required:
|
||||
- id
|
||||
properties:
|
||||
id:
|
||||
description: ID skupiny
|
||||
type: string
|
||||
shareUrl:
|
||||
description: |
|
||||
Odkaz na sledování objednávky — Bolt Food (https://food.bolt.eu/sharedActiveOrder/...)
|
||||
nebo Wolt (https://track.wolt.com/...). Služba se pozná z odkazu.
|
||||
Prázdná hodnota sledování zruší.
|
||||
type: string
|
||||
responses:
|
||||
"200":
|
||||
$ref: "../../api.yml#/components/responses/ClientDataResponse"
|
||||
@@ -694,7 +694,7 @@ NotificationSettings:
|
||||
description: Čas, ve který má být uživatel upozorněn na nezvolený oběd (HH:MM). Prázdné = vypnuto.
|
||||
type: string
|
||||
boltDeliveredPush:
|
||||
description: Zapnuté push upozornění na doručení skupinové objednávky sledované přes Bolt Food.
|
||||
description: Zapnuté push upozornění na doručení sledované skupinové objednávky (Bolt Food i Wolt). Název klíče zůstal kvůli zpětné kompatibilitě uloženého nastavení uživatelů.
|
||||
type: boolean
|
||||
GotifyServer:
|
||||
type: object
|
||||
@@ -871,6 +871,16 @@ Store:
|
||||
description: Volitelná URL na nabídku podniku (např. Bolt Food/Wolt/Foodora)
|
||||
type: string
|
||||
|
||||
TrackingProvider:
|
||||
description: Rozvozová služba, přes kterou lze sledovat stav objednávky
|
||||
type: string
|
||||
enum:
|
||||
- bolt
|
||||
- wolt
|
||||
x-enum-varnames:
|
||||
- BOLT
|
||||
- WOLT
|
||||
|
||||
GroupState:
|
||||
description: Stav skupiny objednávky
|
||||
type: string
|
||||
@@ -956,14 +966,16 @@ OrderGroup:
|
||||
qrGenerated:
|
||||
description: Příznak, zda byly pro skupinu vygenerovány QR kódy (blokuje opakované generování)
|
||||
type: boolean
|
||||
boltTrackingToken:
|
||||
description: Token sdíleného sledování objednávky Bolt Food (poslední segment share URL). Pokud je vyplněn, server automaticky aktualizuje deliveryAt.
|
||||
trackingProvider:
|
||||
$ref: "#/TrackingProvider"
|
||||
trackingCode:
|
||||
description: Kód sledování objednávky (poslední segment share URL — u Bolt Food 64-hex token, u Wolt tracking code). Pokud je vyplněn, server automaticky aktualizuje deliveryAt.
|
||||
type: string
|
||||
boltOrderState:
|
||||
description: Poslední známý stav objednávky z Bolt API (raw order_state, např. waiting_preparation, waiting_delivery, delivered). Zůstává vyplněn i po ukončení sledování.
|
||||
trackingOrderState:
|
||||
description: Poslední známý stav objednávky ze sledovací služby (raw hodnota — Bolt order_state, např. waiting_preparation; Wolt status, např. production). Zůstává vyplněn i po ukončení sledování.
|
||||
type: string
|
||||
boltCourierState:
|
||||
description: Poslední známý stav kurýra z Bolt API (raw courier.state, např. arrived_to_provider, picked_up). Zpřesňuje krok "Na cestě" ve stepperu.
|
||||
trackingCourierState:
|
||||
description: Poslední známý stav kurýra ze sledovací služby (Bolt raw courier.state, např. arrived_to_provider; Wolt odvozené "assigned"/"delivering"). Zpřesňuje krok "Na cestě" ve stepperu.
|
||||
type: string
|
||||
|
||||
# --- NEVYŘÍZENÉ QR KÓDY ---
|
||||
|
||||
Reference in New Issue
Block a user