feat: /objednani – skupinové objednávky s QR platbou
CI / Generate TypeScript types (push) Successful in 18s
CI / Generate TypeScript types (pull_request) Successful in 9s
CI / Server unit tests (push) Successful in 21s
CI / Build client (push) Successful in 40s
CI / Server unit tests (pull_request) Successful in 21s
CI / Build server (pull_request) Successful in 24s
CI / Build server (push) Has been cancelled
CI / Playwright E2E tests (push) Has been cancelled
CI / Build and push Docker image (push) Has been cancelled
CI / Notify (push) Has been cancelled
CI / Build client (pull_request) Has been cancelled
CI / Playwright E2E tests (pull_request) Has been cancelled
CI / Build and push Docker image (pull_request) Has been cancelled
CI / Notify (pull_request) Has been cancelled
CI / Generate TypeScript types (push) Successful in 18s
CI / Generate TypeScript types (pull_request) Successful in 9s
CI / Server unit tests (push) Successful in 21s
CI / Build client (push) Successful in 40s
CI / Server unit tests (pull_request) Successful in 21s
CI / Build server (pull_request) Successful in 24s
CI / Build server (push) Has been cancelled
CI / Playwright E2E tests (push) Has been cancelled
CI / Build and push Docker image (push) Has been cancelled
CI / Notify (push) Has been cancelled
CI / Build client (pull_request) Has been cancelled
CI / Playwright E2E tests (pull_request) Has been cancelled
CI / Build and push Docker image (pull_request) Has been cancelled
CI / Notify (pull_request) Has been cancelled
Nahrazuje /vecere novou stránkou /objednani. Místo jednoho OBJEDNAVAM bucketu umožňuje vytvářet více skupin, kde každá objednává z jiného obchodu. - Skupiny mají stavový automat: open → locked → ordered - Obchody spravuje admin heslem (ADMIN_PASSWORD env var) přes modal „Správa obchodů" - Při stavu ordered zakladatel generuje QR kódy platby (nový PayForGroupModal – volné částky bez menu) - PayForAllModal (oběd) upraven: plátce nyní vidí svůj vlastní díl jako informační řádek - Nové testy: stores.test.ts + groups.test.ts (36 testů)
This commit is contained in:
@@ -66,6 +66,16 @@ ClientData:
|
||||
slot:
|
||||
description: Slot jídla, ke kterému se tato data vztahují
|
||||
$ref: "#/MealSlot"
|
||||
groups:
|
||||
description: Skupiny objednávajících pro extra slot
|
||||
type: array
|
||||
items:
|
||||
$ref: "#/OrderGroup"
|
||||
stores:
|
||||
description: Seznam povolených obchodů/restaurací pro extra objednávky
|
||||
type: array
|
||||
items:
|
||||
type: string
|
||||
|
||||
# --- OBĚDY ---
|
||||
UserLunchChoice:
|
||||
@@ -674,6 +684,68 @@ ClearMockDataRequest:
|
||||
description: Index dne v týdnu (0 = pondělí, 4 = pátek). Pokud není zadán, použije se aktuální den.
|
||||
$ref: "#/DayIndex"
|
||||
|
||||
# --- SKUPINOVÉ OBJEDNÁVKY ---
|
||||
GroupState:
|
||||
description: Stav skupiny objednávky
|
||||
type: string
|
||||
enum:
|
||||
- open
|
||||
- locked
|
||||
- ordered
|
||||
x-enum-varnames:
|
||||
- OPEN
|
||||
- LOCKED
|
||||
- ORDERED
|
||||
|
||||
OrderGroupMember:
|
||||
description: Data člena skupiny objednávky
|
||||
type: object
|
||||
additionalProperties: false
|
||||
properties:
|
||||
amount:
|
||||
description: Částka k úhradě v Kč
|
||||
type: number
|
||||
note:
|
||||
description: Volitelná poznámka (např. co si objednává)
|
||||
type: string
|
||||
surchargeText:
|
||||
description: Popis příplatku
|
||||
type: string
|
||||
surchargeAmount:
|
||||
description: Výše příplatku v Kč
|
||||
type: number
|
||||
|
||||
OrderGroup:
|
||||
description: Skupina uživatelů objednávajících z jednoho místa
|
||||
type: object
|
||||
additionalProperties: false
|
||||
required:
|
||||
- id
|
||||
- name
|
||||
- creatorLogin
|
||||
- state
|
||||
- members
|
||||
properties:
|
||||
id:
|
||||
description: Unikátní identifikátor skupiny
|
||||
type: string
|
||||
name:
|
||||
description: Název obchodu/restaurace
|
||||
type: string
|
||||
creatorLogin:
|
||||
description: Login zakladatele skupiny
|
||||
type: string
|
||||
state:
|
||||
$ref: "#/GroupState"
|
||||
members:
|
||||
description: Členové skupiny
|
||||
type: object
|
||||
additionalProperties:
|
||||
$ref: "#/OrderGroupMember"
|
||||
tipTotal:
|
||||
description: Celkové dýško (Kč), vyplněno při přechodu do stavu ordered
|
||||
type: number
|
||||
|
||||
# --- NEVYŘÍZENÉ QR KÓDY ---
|
||||
PendingQr:
|
||||
description: Nevyřízený QR kód pro platbu
|
||||
|
||||
Reference in New Issue
Block a user