Preskoči na sadržaj

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