Flow: Admin operacije nad sjedalima¶
Actor¶
Admin s ovlastima za upravljanje sjedalima
Preconditions¶
- Admin ima važeće pristupne podatke s ovlastima za upravljanje inventarom
- Postoji event utakmice s konfiguriranim stadionom/venue-om
- Inventar sjedala je učitan u sustav
- Razumijevanje 10+ tipova statusa sjedala: Available, Sold, Reserved, Technical, Official, Blocked, Maintenance, Quarantined, Allocated, Inactive
Flow Steps¶
Part 1: Promjena statusa pojedinačnog sjedala¶
Pristup upravljanju inventarom sjedala
- Admin se prijavljuje u admin portal
- Otvara sekciju "Stadium Management"
- Iz dropdowna odabire ciljanu utakmicu/event
- Učitava se mapa stadiona s vizualizacijom statusa sjedala (color-coded):
- Green: Available
- Blue: Sold
- Yellow: Reserved
- Purple: Technical
- Orange: Official
- Red: Blocked
- Gray: Maintenance
- Brown: Quarantined
- Teal: Allocated
- Black: Inactive
Odabir pojedinačnog sjedala
- Admin navigira mapom stadiona (pan/zoom)
- Klikne na konkretno sjedalo (npr. Section A, Row 5, Seat 12)
- Prikazuje se panel s detaljima sjedala:
- Identifikator sjedala (section, row, number)
- Trenutni status
- Zadnja promjena statusa (datum, vrijeme, admin)
- Lock status (ako je reserved/in-cart)
- Povezani order ID (ako je sold)
- Povijest statusa (audit trail)
Promjena statusa sjedala
- Admin klikne gumb "Change Status"
- Prikazuje se forma za promjenu statusa:
- Current Status: [npr. Available]
- New Status (dropdown samo s dozvoljenim prijelazima):
- Available → Reserved, Sold, Technical, Official, Blocked, Maintenance, Allocated
- Sold → Available (requires refund workflow), Quarantined
- Reserved → Available (if expired), Sold
- Etc. (based on status transition rules)
- Reason (obavezno, free text): npr. "Safety inspection required"
- Sustav provjerava je li prijelaz dozvoljen
- Admin unosi razlog i datum
- Admin klikne "Update Status"
Potvrda i primjena
- Sustav prikazuje potvrdu:
- "Change seat [Section A-Row 5-Seat 12] from [Available] to [Maintenance]?"
- "Reason: Safety inspection required"
- "Effective: Immediately"
- Admin potvrđuje
- Sustav ažurira status sjedala
- Kreira se audit log entry
- Boja sjedala na mapi se odmah ažurira
- Poruka uspjeha: "Seat status updated successfully"
Part 2: Grupni odabir sjedala i bulk operacije¶
Metoda odabira 1: Po sekciji/sektoru¶
Odabir sekcije
- Admin klikne gumb "Bulk Operations"
- Aktivira se način odabira
- Admin odabire sekciju iz dropdowna ili klikne sekciju na mapi (npr. "North Stand Section A")
- Sustav označi sva sjedala u sekciji
- Prikazuje se sažetak odabira:
- Total seats selected: 1,248
- Current status breakdown:
- Available: 856
- Sold: 312
- Reserved: 24
- Other: 56
- Mogućnost sužavanja odabira kroz filtere
Primjena grupne promjene statusa
- Admin klikne "Change Status" za odabrani skup
- Prikazuje se forma za bulk promjenu:
- Apply to Status (opcionalno): "Only change seats with status: [Available]"
- New Status: Blocked
- Reason (obavezno): "Safety inspection - structural assessment"
- Admin popunjava formu
- Preview prikazuje: "856 Available seats will be changed to Blocked"
- Admin klikne "Apply Bulk Change"
Pregled i potvrda
- Dialog potvrde:
- "Change 856 seats in North Stand Section A?"
- "From: Available → To: Blocked"
- Upozorenje: "This will remove seats from public sale immediately"
- Admin potvrđuje
- Progress bar prikazuje status
- Sustav obrađuje promjene u batch-evima (transaction safety)
- Poruka uspjeha: "856 seats updated successfully"
- Mapa stadiona se ažurira novim bojama
Metoda odabira 2: Raspon redova¶
Odabir raspona redova
- Admin prvo odabire sekciju (npr. "East Stand Section C")
- Klikne "Select by Row Range"
- Prikazuju se polja:
- From Row: 1
- To Row: 10
- Admin unosi raspon
- Sustav označi odabrane redove na mapi
- Sažetak odabira: 420 seats selected (Rows 1-10)
Primjena promjene statusa
- Isti proces kao kod odabira sekcije
- Admin mijenja status iz Available u Technical
- Reason: "Press and media allocation for match day"
- Sustav validira i primjenjuje promjenu
- 420 sjedala prelazi u Technical status
Metoda odabira 3: Raspon brojeva sjedala¶
Odabir raspona sjedala
- Admin odabire sekciju i red
- Klikne "Select by Seat Range"
- Polja:
- Section: West Stand B
- Row: 15
- From Seat: 1
- To Seat: 50
- Sustav označi sjedala 1-50 u Row 15
- Sažetak odabira: 50 seats selected
Primjena promjene statusa
- Admin mijenja u Official status
- Reason: "VIP guest allocation"
- Effective immediately
- Sustav primjenjuje promjenu na 50 sjedala
Metoda odabira 4: Ručni multi-select¶
Ručni odabir
- Admin uključuje "Multi-Select Mode"
- Klikne pojedinačna sjedala na mapi (Ctrl+Click za više)
- Odabrana sjedala su označena drugačijom bojom
- Lista odabranih sjedala prikazuje se u sidebaru:
- Section A-Row 3-Seat 5
- Section A-Row 3-Seat 6
- Section B-Row 7-Seat 12
- ... (do 100 ručnih odabira odjednom)
- Admin može ukloniti pojedinačni odabir ili očistiti sve
Primjena promjene statusa
- Admin mijenja raspršena sjedala u Quarantined
- Reason: "Customer complaints - investigation pending"
- Sustav primjenjuje na sva odabrana sjedala
Metoda odabira 5: Odabir prema filterima¶
Primjena filtera
- Admin klikne "Advanced Filters"
- Dostupni kriteriji:
- Status: [jedan ili više statusa]
- Section: [odabir sekcija]
- Price Category: [Premium, Standard, Economy]
- Last Modified Date: [raspon datuma]
- Modified By: [Admin user]
- With Active Locks: Yes/No
- Primjer: odabir svih sjedala sa statusom "Maintenance"
- Sustav primjenjuje filtere i označi odgovarajuća sjedala
- Sažetak: 142 seats match filters
Primjena promjene statusa
- Admin mijenja filtrirana sjedala iz Maintenance u Available
- Reason: "Maintenance completed - seats ready for sale"
- Sustav validira i ažurira 142 sjedala
Part 3: CSV izvoz¶
Izvoz trenutnog statusa inventara
- Admin klikne gumb "Export Inventory"
- Opcije izvoza:
- Match/Event: odabir utakmice ili "All upcoming"
- Sections: sve ili odabrane sekcije
- Statuses: svi statusi ili filter po statusu
- Admin odabire opcije i klikne "Export"
- Sustav generira datoteku: "seat-inventory-[match-name]-[date].csv"
- Datoteka sadrži stupce:
- Stadium ID, Section, Row, Seat Number, Current Status, Price Category, Last Modified, Modified By, Lock Status, Order ID (if sold)
- Admin sprema datoteku lokalno
Part 4: Pretraga i izmjene po sjedalu / rezervaciji¶
Metoda pretrage 1: Pretraga po broju sjedala¶
Pristup sučelju za pretragu sjedala
- Admin se prijavljuje u admin portal
- Otvara "Stadium Management"
- Klikne "Search Seats"
- Prikazuje se sučelje s više opcija pretrage
Pretraga konkretnog sjedala
- Admin bira tip pretrage: "By Seat Number"
- Prikazuju se polja:
- Stadium/Venue: Dropdown (npr. Maksimir, Poljud, Opus Arena)
- Match/Event: Dropdown ili "All Events"
- Section: Text input (npr. "A", "P53N", "ISTOK C5")
- Row: Text input (npr. "5", "15")
- Seat Number: Text input (npr. "12", "B3")
- Admin unosi: Stadium: Maksimir, Section: A, Row: 5, Seat: 12
- Admin klikne "Search"
Pregled detalja sjedala
- Sustav dohvaća informacije
- Prikazuje se detaljni panel:
- Seat Identifier: Maksimir - Section A - Row 5 - Seat 12
- Current Status: Sold / Reserved / Available / etc.
- Match/Event: Croatia vs Poland - 15.03.2026
- Linked Document:
- Type: KVOTA (Quota) / ORDER / STORNO
- Document ID: link na dokument (npr. "Quota #300032x")
- Klik za detalje
- Customer/Owner Information (ako je sold/reserved):
- Name: [Customer name]
- OIB: [Masked OIB]
- Email: [Masked email]
- Order number: 4100234
- Pricing: 50.00 EUR
- Payment Status: Paid / Pending / Deferred
- Lock Status: Locked / Available
- Last Status Change:
- Date/Time: 15.11.2025 14:32:15
- Changed by: admin@hns.hr
- Reason: "Quota allocation"
- Status History (expandable):
- 15.11.2025 14:32: Available → Reserved (Quota allocation)
- 16.11.2025 10:15: Reserved → Sold (Quota claimed)
- Prikazuje se puni audit trail
Pregled povezanog dokumenta
- Admin klikne povezani dokument: "Quota #300032x"
- Sustav otvara detalje dokumenta (modal ili novi tab):
- Naziv nositelja kvote i organizacija
- Tip kvote (npr. Sponsor, Official, Partner)
- Ukupna alokacija i iskorištenost
- Deadline
- Sva sjedala u toj kvoti
- Kontakt podaci
- Payment terms (deferred/immediate)
- Admin se može prebaciti u quota management
- Admin se vraća na detalje sjedala
Metoda pretrage 2: Pretraga po rezervaciji/kvoti¶
Pretraga po broju rezervacije
- Admin odabire tip pretrage: "By Reservation/Quota"
- Prikazuju se polja:
- Search Type: Dropdown (Quota, Reservation, Order, Storno)
- Document Number: Text input
- Match/Event: Dropdown ili "All Events"
- Customer Name/OIB: opcionalno za filtriranje
- Admin unosi: Type: Quota, Document: "300032x"
- Admin klikne "Search"
Pregled sažetka rezervacije/kvote
- Sustav dohvaća sve informacije za kvotu 300032x
- Prikazuje se panel sažetka:
- Quota ID: 300032x
- Quota Owner: Hrvatski Telekom (Sponsor)
- Contact: sponsor@ht.hr
- Match/Event: Croatia vs Poland - 15.03.2026
- Allocated Sectors: Section A, Section B (VIP)
- Total Allocation: 50 seats
- Claimed/Used: 42 seats
- Available: 8 seats
- Status: Active
- Deadline: 10.03.2026 23:59
- Payment Terms: Deferred payment
- Created by: admin@hns.hr on 01.11.2025
- Prikazuje se Seat List u tablici:
- Columns: Section, Row, Seat, Status, Claimed By, Claim Date
- 50 redova za sva alocirana sjedala
- Color-coded by status (claimed/available)
- Sortable and filterable
Pregled pojedinačnog sjedala iz kvote
- Admin klikne na konkretno sjedalo u listi (npr. Section A, Row 5, Seat 12)
- Sustav otvara detalje sjedala (kao u Metoda 1)
- Dostupan je link natrag na sažetak kvote
Metoda pretrage 3: Putem interaktivne mape sjedala¶
Pristup prikazu mape stadiona
- Admin se prijavljuje u admin portal
- Navigira na "Stadium Management"
- Odabire ciljani match/event iz dropdowna
- Učitava se interaktivna mapa sjedala stadiona s vizualizacijom statusa sjedala u boji
- Dostupne kontrole mape:
- Pan: Klik i povlačenje za navigaciju
- Zoom: Kotačić miša ili pinch gesta za zumiranje
- Oznake sekcija i brojevi redova vidljivi na odgovarajućim razinama zuma
Navigacija i odabir sjedala putem mape
- Admin koristi pan/zoom za navigaciju do željenog područja stadiona
- Admin zumira na određenu sekciju (npr. Sekcija A)
- Detalji na razini sjedala postaju vidljivi pri većim razinama zuma
- Admin klikne na određeno sjedalo (npr. Red 5, Sjedalo 12)
- Sjedalo se označava na mapi
Pregled detalja sjedala u modalu
- Otvara se modalni prozor s detaljnim informacijama o sjedalu:
- Identifikator sjedala: Maksimir - Sekcija A - Red 5 - Sjedalo 12
- Trenutni status: Sold / Reserved / Available / itd. (označeno bojom)
- Match/Event: Hrvatska vs Poljska - 15.03.2026
- Povezani dokument:
- Tip: KVOTA / ORDER / STORNO
- ID dokumenta: Link koji se može kliknuti (npr. "Kvota #300032x")
- Informacije o kupcu/vlasniku (ako je prodano/rezervirano):
- Ime: [Ime kupca]
- OIB: [Maskirani OIB]
- Email: [Maskirani email]
- Broj narudžbe: 4100234
- Cijena: 50.00 EUR
- Status plaćanja: Paid / Pending / Deferred
- Status zaključavanja: Locked / Available
- Zadnja promjena statusa:
- Datum/Vrijeme: 15.11.2025 14:32:15
- Promijenio: admin@hns.hr
- Razlog: "Quota allocation"
- Brza povijest statusa (zadnjih 5 promjena, proširivo za punu povijest)
- Modal uključuje akcijske gumbe:
- "Modify Assignment"
- "Change Status"
- "View Full History"
- "View Linked Document"
- "Close"
Izvođenje operacija iz modala
- Admin može izvršiti bilo koju operaciju izmjene izravno iz modala:
- Change Status: Otvara formu za promjenu statusa unutar modala
- Modify Assignment: Otvara formu za izmjenu dodjele
- View Linked Document: Otvara detalje dokumenta u novom sloju modala
- View Full History: Proširuje prikaz za kompletan audit trail
- Sve operacije slijede iste tokove validacije i potvrde kao što je opisano u odjeljku "Operacije izmjene"
- Nakon uspješne operacije, modal se ažurira kako bi prikazao novo stanje sjedala
- Admin može zatvoriti modal i nastaviti navigaciju mapom
- Mapa se automatski osvježava kako bi prikazala ažuriranu boju/status sjedala
Odabir više sjedala putem mape
- Admin može držati Ctrl/Cmd i kliknuti više sjedala na mapi
- Odabrana sjedala se označavaju s granicom odabira
- Pojavljuje se gumb za bulk operacije: "Modify Selected Seats (X)"
- Admin može primijeniti bulk promjene statusa na sjedala odabrana na mapi
- Slijedi isti tijek bulk operacija kao u Dijelu 2
Metoda pretrage 4: Napredna pretraga (više kriterija)¶
Sučelje napredne pretrage
- Admin klikne "Advanced Search"
- Dostupni kriteriji:
- Match/Event: višestruki odabir
- Status: višestruki odabir (Available, Sold, Reserved, etc.)
- Section(s): višestruki odabir
- Document Type: Quota, Order, Storno, None
- Customer OIB: text input
- Customer Name: text input
- Date Range: From/To date pickers
- Modified By: Admin user dropdown
- Payment Status: Paid, Pending, Deferred
- Primjer postavki filtera:
- Match: Croatia vs Poland
- Status: Sold
- Document Type: Quota
- Section: A
- Admin klikne "Search"
Pregled rezultata pretrage
- Sustav vraća odgovarajuća sjedala
- Rezultati se prikazuju u paginiranoj tablici:
- Columns: Seat Identifier, Status, Document Type, Customer, Price, Claim Date
- Total results: 158 seats
- Dostupna opcija izvoza (CSV/Excel)
- Admin može kliknuti red za detalje
- Admin može odabrati više redova za bulk operacije
Operacije izmjene¶
Izmjena dodjele za jedno sjedalo
- Iz detail view-a sjedala
- Admin klikne "Modify Assignment"
- Opcije:
- Change Status: dropdown (respecting valid transitions)
- Reassign to Different Customer:
- Pretraga kupca po OIB-u/e-mailu
- Transfer sjedala na novog kupca
- Originalni kupac dobiva obavijest
- Change Linked Document:
- Unlink iz postojeće kvote/narudžbe
- Link na drugu kvotu/narudžbu
- Validacija: ciljna kvota mora imati kapacitet
- Add Internal Note: free text
- Admin odabire tip izmjene
- Admin unosi obavezne podatke i razlog
- Sustav validira dopuštenost izmjene
Potvrda izmjene
- Sustav prikazuje potvrdu:
- "Modify seat [Section A-Row 5-Seat 12]?"
- "Action: Reassign from Customer A (OIB: 12345) to Customer B (OIB: 67890)"
- "Reason: Customer request - approved transfer"
- Upozorenje: "Both customers will be notified via email"
- Admin potvrđuje
- Sustav obrađuje promjenu:
- Ažurira dodjelu sjedala
- Ažurira zapise kupaca
- Ažurira zapise kvote/narudžbe (ako je primjenjivo)
- Kreira audit log entry
- Šalje e-mail i push obavijesti
- Poruka uspjeha: "Seat reassigned successfully"
Audit trail i povijest¶
Pregled kompletnog audit traila
- Iz detail view-a sjedala
- Admin klikne "View Full History"
- Prikazuje se kompletan audit log:
- Sve promjene za ovo sjedalo kroz sve evente
- Columns: Date/Time, Action, Old Value, New Value, Changed By, Reason, Source
- Primjeri:
- 01.11.2025 10:00: Created | Status: null → Available | System | Auto | Import
- 10.11.2025 14:30: Status Change | Available → Reserved | admin@hns.hr | Manual | "Quota allocation 300032x"
- 12.11.2025 16:45: Claimed | Reserved → Sold | quota-system | Auto | "Customer claim"
- 15.11.2025 09:20: Price Override | 50.00 → 40.00 | manager@hns.hr | Manual | "Sponsor discount applied"
- Audit trail se može izvesti (CSV)
- Permanent retention radi compliance-a
Filtriranje audit traila
- Opcije filtera:
- Raspon datuma
- Tip akcije (Status change, Assignment, Price change, etc.)
- Admin user
- Source (Manual, Auto, Import, API)
- Admin primjenjuje filtere
- Prikazuju se filtrirani rezultati
- Izvoz filtriranog audit traila
Performanse pretrage i optimizacija¶
- Indexed Fields: Seat identifiers, customer OIB, document numbers
- Caching: recent searches cached
- Concurrent Access: više admina može istovremeno pretraživati
- Real-Time Updates: rezultati reflektiraju zadnje stanje (nema stale cache-a za izmjene)
Alternative Flows¶
A1: Konflikt bulk operacije - sjedala su zaključana
- Admin pokušava bulk promjenu statusa na sekciji
- Sustav detektira 24 sjedala trenutno zaključana (u košaricama kupaca)
- Upozorenje: "24 seats are currently reserved in customer carts. These will be skipped."
- Opcije:
- Nastaviti samo s ne-zaključanim sjedalima
- Pričekati i pokušati kasnije
- Ako nastavi: 832 seats updated, 24 skipped
- Preskočena sjedala su u izvještaju za pregled
A2: Pokušaj nedozvoljenog prijelaza statusa
- Admin pokušava promijeniti Sold sjedala u Available bez povrata
- Sustav blokira: "Invalid transition. Sold seats require refund process."
- Admin mora:
- Koristiti refund workflow
- Ili filtrirati odabir da isključi Sold sjedala
A3: Ograničenje performansi za veliku bulk operaciju
- Admin odabire cijeli stadion (50,000 seats)
- Sustav upozorava: "Large operation detected. This may take several minutes."
- Admin potvrđuje
- Sustav obrađuje u batch-evima od 1,000 sjedala
- Progress: "Processing batch 12/50..."
- Prikazuje se sažetak uspjeha
A4: Detektirana konkurentna izmjena
- Admin A i Admin B pokušavaju promijeniti istu sekciju istovremeno
- Sustav koristi optimistic locking (version numbers)
- Promjene prvog admina se uspješno spremaju
- Drugi admin dobiva upozorenje: "Section was modified by another user. Please refresh and retry."
- Admin refresh-a prikaz
- Admin može ponovno primijeniti promjene ako je i dalje potrebno
Post-Flow Actions¶
Real-time sinkronizacija:
- Sve promjene statusa propagiraju se u:
- Mobilnu aplikaciju
- Capacity dashboard (real-time)
- Quota allocation system (immediate)
- Admin dobiva potvrdu uspješne sinkronizacije
Pregled audit traila:
- Kompletna povijest za svako sjedalo:
- Sve promjene statusa s timestampovima
- Admin koji je napravio promjenu
- Uneseni razlog
- Source (manual, bulk, import, scheduled, auto)
- Izvoz radi compliance-a
- Retention: permanent (audit)
Status Analytics Dashboard:
- Vizualni grafovi:
- Trenutna distribucija statusa (pie chart)
- Sažetak aktivnosti admina
- Filtriranje po rasponu datuma, utakmici, sekciji, adminu
Last Updated: January 2026