1e1e23df80
ci/woodpecker/push/workflow Pipeline was canceled
Přidává možnost, aby jeden strávník zaplatil celý účet v restauraci a ostatní
obdrželi QR kód pro refundaci.
Prerekvizita — podpora více QR kódů na (příjemce, den):
- PendingQr.id (UUID) nahrazuje deduplikaci podle data; každý QR má vlastní klíč
- QR obrázky uloženy do Redis/storage (base64) místo tmpdir — přežijí redeploy
- GET /api/qr vyžaduje ?id= parametr; dismissQr přijímá {id} místo {date}
Feature:
- Ikona 'Zaplatit za všechny' v choices-table pro každou LunchChoice (kromě
PIZZA/NEOBEDVAM/ROZHODUJI); viditelná jen při ≥2 strávnících a vyplněném účtu
- PayForAllModal: tabulka strávníků s prefillovanými cenami z menu, příplatky
per-diner, celkové dýško rozpočtené rovnoměrně, generování QR přes POST /api/qr/generate
- parsePriceCzk() helper pro parsing 'N Kč' → number
Co se nemění: POST /api/qr/generate API kontrakt, PizzaOrder.hasQr boolean
Co se mění v OpenAPI: PendingQr.id (required), getPizzaQr ?id param, dismissQr body
Co-Authored-By: opmrdkazkrtkaus <opmrdkazkrtkaus@melancholik.eu>
26 lines
644 B
YAML
26 lines
644 B
YAML
get:
|
|
operationId: getPizzaQr
|
|
summary: Získání QR kódu pro platbu
|
|
security: [] # Nevyžaduje autentizaci
|
|
parameters:
|
|
- in: query
|
|
name: login
|
|
schema:
|
|
type: string
|
|
required: true
|
|
description: Přihlašovací jméno uživatele, pro kterého bude vrácen QR kód
|
|
- in: query
|
|
name: id
|
|
schema:
|
|
type: string
|
|
required: true
|
|
description: Unikátní identifikátor QR kódu (z PendingQr.id)
|
|
responses:
|
|
"200":
|
|
description: Vygenerovaný QR kód pro platbu
|
|
content:
|
|
image/png:
|
|
schema:
|
|
type: string
|
|
format: binary
|