P7 — Wallet — Moje vstupenky
Centrální místo pro všechny vstupenky uživatele. Klíčová hodnota mobilní app oproti webu — wallet funguje plně offline; QR kódy se čtou z lokální šifrované cache. Obsah je členěný podle času: nadcházející akce (výchozí), minulé vstupenky a integrovaná historie objednávek (dříve samostatná S7).
Content Priority
- Skupinové karty podle objednávky — pro každou objednávku jedna skupinová karta: název akce, datum, místo konání, souhrn „N vstupenek“, status badge (zaplaceno / rezervováno / čeká na platbu). Tap na kartu → rozbalení na detail po sedadlech. Quick action „Zobrazit QR“ → fullscreen prohlížeč s přejetím mezi vstupenkami (1/N). Ticket CardBadge / Tag
- Odpočet do akce — „Za 3 dny“ / „Dnes v 19:00“ / „Za 2 hodiny“ — relativní čas u nadcházejících položek. Badge / Tag
- Quick actions (nadcházející) — „Zobrazit QR“ (viz výše), „Sdílet“ — v [MVP] sdílí deep link na detail akce (P3), nikoli na vstupenku. „Přidat do kalendáře“. Plné sdílení / přenos vstupenky je [F1]; v MVP žádný badge „Sdíleno“. Icon Button
- Segmentovaný přepínač (3 segmenty) — Nadcházející (výchozí) | Minulé | Historie. Segment Historie integruje obsah S7 — Historie objednávek přímo ve walletu — bez samostatného tabu / tlačítka mimo segment. Tab Switch
- Minulé vstupenky — sekce ve zkrácené podobě: souhrnný řádek typu „X minulých akcí“; tap → rozbalení seznamu. Karty minulých akcí jsou ztlumené, bez QR, bez quick actions (jen informativní přehled). Ticket Card
- Segment Historie — stejný datový a UI rámec jako dříve S7: detailní přehled objednávek, stavy, odkazy na detaily podle specifikace S7; nyní jako třetí segment walletu, ne jako samostatná primární záložka. Ghost/Text Button
Lokální cache QR a indikace
| Aspekt | Chování |
|---|---|
| Okamžité stažení po platbě | Po úspěšné platbě na X1 — Zaplaceno proběhne okamžitý stažení barcode dat do šifrovaného lokálního úložiště (šifrovaná DB / secure storage). |
| Pull-to-refresh | Uživatelsky spustitelná synchronizace — aktualizace cache a stavů z backendu. |
| Background sync | Automatická synchronizace cca 1× denně (background fetch), pokud to OS a politika baterie dovolí. |
| Velikost | řádově ~5 KB na vstupenku (payload pro QR / barcode identifikátor). |
| TTL a úklid | 30 dní po datu akce → automatické vyčištění záznamu z lokální cache. |
| Offline indikátor | U položky se zobrazí zelená fajfka = data jsou v cache a QR je k dispozici offline. |
Na S8 — Detail vstupenky při zobrazení QR zobrazit informaci „Jas automaticky zvýšen“ (auto brightness pro spolehlivé skenování u vstupu).
Interakce
| Trigger | Akce | Cíl |
|---|---|---|
| Tap na skupinovou kartu (nadcházející) | Rozbalení / sbalení detailu po sedadlech | Inline na P7 |
| Tap na „Zobrazit QR“ | Fullscreen prohlížeč QR, swipe 1/N mezi vstupenkami stejné objednávky | S8 v QR režimu / sdílený fullscreen viewer |
| Tap na řádek vstupenky | Detail vstupenky | S8 — Detail vstupenky |
| Tap na „Sdílet“ | Systémový share sheet | Deep link na akci P3 ([MVP]); plné sdílení vstupenky [F1] |
| Tap na „Přidat do kalendáře“ | Systémový kalendář | X16 — Přidáno do kalendáře |
| Přepnutí segmentu Nadcházející / Minulé / Historie | Filtr obsahu walletu | Historie = integrovaný obsah S7 |
| Tap na „X minulých akcí“ | Rozbalení seznamu minulých akcí | Zůstává na P7, segment Minulé |
| Pull-to-refresh | Sync + obnova cache | Aktualizace QR payloadů a stavů |
| Otevření walletu offline | Čtení z cache | Plně funkční QR tam, kde je zelená fajfka (cached) |
Stavy
| Stav | Popis | Vizuální chování |
|---|---|---|
| Loaded — s nadcházejícími | Existují nadcházející objednávky | Skupinové karty, rozbalitelný detail, QR quick action, cache indikátor |
| Loaded — jen minulé / historie | Žádné nadcházející | Segment Nadcházející může ukázat empty state; Minulé a Historie dostupné |
| Empty | Žádné vstupenky | X7 — Empty state vstupenky |
| Offline | Bez připojení | Wallet plně použitelný pro cached položky; QR z lokální cache; banner nebo stavový text typu „Offline — QR z cache“ kde vhodné |
| Nepřihlášen | Guest uživatel | Prompt „Přihlaste se pro přístup k vašim vstupenkám“ + CTA login |
Edge Cases a Error States
| Scénář | Řešení |
|---|---|
| Guest nákup (bez registrace) | Vstupenky pouze na emailu, wallet prázdný s vysvětlením „Pro wallet se přihlaste“ |
| Akce zrušena po nákupu | Skupinová karta s červeným badge „Zrušeno“, info o refundu |
| Změna termínu akce | Push notifikace + aktualizované datum na kartě s badge „Změněno“ |
| Uživatel má mnoho objednávek | Paginace / infinite scroll; nadcházející vždy první |
| QR se nepodaří stáhnout / chybí v cache | Fallback: textový kód / číslo objednávky + „Kontaktujte pokladnu“; po návratu online sync |
| Sdílení vstupenky mezi uživateli | [F1] — přenos / kopie vstupenky; v [MVP] pouze share deep linku na akci, bez badge „Sdíleno“ |
| Maximální jas při QR | Auto brightness; na S8 copy „Jas automaticky zvýšen“ u QR |
Mobilní patterny a odlišení od webu
Co web nemá a proč je to klíčové
- Plně offline wallet s přednačteným QR — hlavní USP mobilní app; web spoléhá na email / PDF za online přístupu
- Skupinový přehled objednávek — jedna karta = jedna objednávka, ne izolovaná vstupenka bez kontextu
- Relativní odpočet — „Za 2 hodiny“ je mobilní pattern (notifikace, widgety)
- Auto brightness u QR — na S8 explicitně komunikováno uživateli
Aplikované patterny
- iOS: Inspirováno Apple Wallet — kartový design, swipe mezi QR v rámci fullscreen vieweru, pass-like UI.
NFCready pro budoucí bezkontaktní vstup. - Android: Material 3 card pattern,
BiometricPromptpro zabezpečený přístup k citlivým akcím (volitelné)
API Data
POST/sale/itemsGET/sale/{saleNumber}POST/document/eticketPOST/document/evoucher| Operace | Endpoint | Trigger | Poznámka |
|---|---|---|---|
| Vstupenky ve walletu | POST /sale/items | Otevření walletu, pull-to-refresh, background sync | Prodané položky — TicketOnline s barcode pro QR |
| Detail prodeje | GET /sale/{saleNumber} | Rozbalení skupiny / detail | Kompletní detail prodeje (post-payment) |
| E-vstupenka | POST /document/eticket | Po X1 + obnova cache | Payload pro uložení do šifrované lokální DB |
| E-voucher | POST /document/evoucher | Podle typu položky | Pokud uživatel má zakoupené vouchery |
API rozlišuje Order (pre-payment, může být cancelled/restored to cart) a Sale (post-payment, vstupenky s barcodes). Wallet zobrazuje Sale items, ne Orders. Klíčové: TicketOnline má dva identifikátory — number (tištěné číslo) a barcode (QR/čárový kód pro skenování u vstupu). Pro wallet je klíčový barcode; ten se ukládá do lokální cache po platbě a při sync.
Reference — Aktuální web
SCR-WEB-43Účet — objednávky se statusy (Sold, Booked, Waiting, Cancelled)Web nemá wallet — pouze seznam objednávek v účtu s textovými statusy. Mobilní app přidává skupinové karty, offline QR cache, segment Historie, auto brightness u QR a deep link share na akci.
Reference — CineStar benchmark
SCR-CS-16Potvrzení — 'Vstupenky jsme zaslali na email', CTA Sdílet / Moje nákupy
