Skip to content

Flow: Admin Seat Operations

Actor

Admin with seat management permissions

Preconditions

  • Admin has valid credentials with inventory management permissions
  • Match event exists with stadium/venue configured
  • Seat inventory loaded into system
  • Understanding of 10+ seat status types: Available, Sold, Reserved, Technical, Official, Blocked, Maintenance, Quarantined, Allocated, Inactive

Flow Steps

Part 1: Individual Seat Status Change

Access Seat Inventory Management

  • Admin logs into admin portal
  • Navigates to "Stadium Management" section
  • Selects target match/event from dropdown
  • Stadium Visualization Options:
    • Full Stadium View (UEFA-style): Shows entire stadium with all sections visible
      • Zoomable interface - pinch/scroll to zoom into specific areas
      • At low zoom: shows section-level color coding (aggregate status)
      • At high zoom: shows individual seat-level detail
      • Preferred for getting overall stadium status at a glance
    • Sector Detail View (Current): Click section to see individual seats
      • Traditional view showing sector with seat grid
      • Useful for detailed seat-by-seat operations
    • Toggle between views via "Stadium View" / "Sector View" buttons
  • Stadium seating map loads with color-coded seat status visualization:
    • Green: Available
    • Blue: Sold
    • Yellow: Reserved
    • Purple: Technical
    • Orange: Official
    • Red: Blocked
    • Gray: Maintenance
    • Brown: Quarantined
    • Teal: Allocated
    • Black: Inactive
  • Note: Full stadium zoomable view implementation depends on technical feasibility with stadium map data format

Select Individual Seat

  • Admin navigates stadium map (pan/zoom enabled)
  • Clicks on specific seat (e.g., Section A, Row 5, Seat 12)
  • Seat details panel appears:
    • Seat identifier (section, row, number)
    • Current status
    • Last status change (date, time, admin)
    • Lock status (if reserved/in-cart)
    • Associated order ID (if sold)
    • Status history (audit trail)

Change Seat Status

  • Admin clicks "Change Status" button
  • Status change form displayed:
    • Current Status: [e.g., Available]
    • New Status (dropdown with valid transitions only):
      • 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 (required, free text): e.g., "Safety inspection required"
  • System validates transition is allowed
  • Admin enters reason and dates
  • Admin clicks "Update Status"

Confirm and Apply

  • System displays confirmation:
    • "Change seat [Section A-Row 5-Seat 12] from [Available] to [Maintenance]?"
    • "Reason: Safety inspection required"
    • "Effective: Immediately"
  • Admin confirms
  • System updates seat status
  • Audit log entry created
  • Seat color updates on map immediately
  • Success message: "Seat status updated successfully"

Part 2: Bulk Seat Selection and Operations

Selection Method 1: By Section/Sector

Select Section

  • Admin clicks "Bulk Operations" button
  • Selection mode activated
  • Admin selects section from dropdown or clicks section on map (e.g., "North Stand Section A")
  • System highlights all seats in section
  • Selection summary displayed:
    • Total seats selected: 1,248
    • Current status breakdown:
      • Available: 856
      • Sold: 312
      • Reserved: 24
      • Other: 56
  • Option to refine selection with filters

Apply Bulk Status Change

  • Admin clicks "Change Status" for selection
  • Bulk change form displayed:
    • Apply to Status (optional filter): "Only change seats with status: [Available]"
    • New Status: Blocked
    • Reason (required): "Safety inspection - structural assessment"
  • Admin fills form
  • Preview shows: "856 Available seats will be changed to Blocked"
  • Admin clicks "Apply Bulk Change"

Review and Confirm

  • Confirmation dialog:
    • "Change 856 seats in North Stand Section A?"
    • "From: Available → To: Blocked"
    • Warning: "This will remove seats from public sale immediately"
  • Admin confirms
  • Progress bar shows operation status
  • System processes changes in batches (transaction safety)
  • Success message: "856 seats updated successfully"
  • Stadium map updates with new colors

Selection Method 2: By Row Range

Select Row Range

  • Admin selects section first (e.g., "East Stand Section C")
  • Clicks "Select by Row Range"
  • Input fields appear:
    • From Row: 1
    • To Row: 10
  • Admin enters row range
  • System highlights selected rows on map
  • Selection summary: 420 seats selected (Rows 1-10)

Apply Status Change

  • Same process as section selection
  • Admin changes status from Available to Technical
  • Reason: "Press and media allocation for match day"
  • System validates and applies change
  • 420 seats moved to Technical status

Selection Method 3: By Seat Number Range

Select Seat Range

  • Admin selects section and row
  • Clicks "Select by Seat Range"
  • Input fields:
    • Section: West Stand B
    • Row: 15
    • From Seat: 1
    • To Seat: 50
  • System highlights seats 1-50 in Row 15
  • Selection summary: 50 seats selected

Apply Status Change

  • Admin changes to Official status
  • Reason: "VIP guest allocation"
  • Effective immediately
  • System applies change to 50 seats

Selection Method 4: Custom Multi-Select

Manual Selection

  • Admin enables "Multi-Select Mode"
  • Clicks individual seats on map (Ctrl+Click for multiple)
  • Selected seats highlighted with different color
  • Selected seats list displayed in sidebar:
    • Section A-Row 3-Seat 5
    • Section A-Row 3-Seat 6
    • Section B-Row 7-Seat 12
    • ... (up to 100 manual selections at once)
  • Admin can deselect individual seats or clear all

Apply Status Change

  • Admin changes scattered seats to Quarantined
  • Reason: "Customer complaints - investigation pending"
  • System applies to all selected seats

Selection Method 5: Filter-Based Selection

Apply Filters

  • Admin clicks "Advanced Filters"
  • Filter criteria available:
    • Status: [Select one or multiple statuses]
    • Section: [Select sections]
    • Price Category: [Premium, Standard, Economy]
    • Last Modified Date: [Date range]
    • Modified By: [Admin user]
    • With Active Locks: Yes/No
  • Example: Select all "Maintenance" status seats
  • System applies filters and highlights matching seats
  • Selection summary: 142 seats match filters

Apply Status Change

  • Admin changes filtered seats from Maintenance to Available
  • Reason: "Maintenance completed - seats ready for sale"
  • System validates and updates 142 seats

Part 3: CSV Export

Export Current Seat Status

  • Admin clicks "Export Inventory" button
  • Export options:
    • Match/Event: Select specific match or "All upcoming"
    • Sections: All or specific sections
    • Statuses: All statuses or filter by status
  • Admin selects options and clicks "Export"
  • System generates file: "seat-inventory-[match-name]-[date].csv"
  • File includes columns:
    • Stadium ID, Section, Row, Seat Number, Current Status, Price Category, Last Modified, Modified By, Lock Status, Order ID (if sold)
  • Admin saves file locally

Part 4: Sector-to-Sector Ticket Transfer

Use Case

When physical stadium changes occur (e.g., fence moved between sectors, capacity reallocation), admin needs to transfer sold tickets from one sector to another.

Example Scenario: Sector A and B share a boundary. The fence is moved, increasing Sector A by 500 seats and decreasing Sector B by 500. Tickets already sold in the affected area of Sector B need to be transferred to new seats in Sector A, and the original seats in B need to be blocked.

Access Sector Transfer Interface

  • Admin logs into admin portal
  • Navigates to "Stadium Management" > "Sector Operations"
  • Selects target match/event
  • Clicks "Sector Transfer" button

Select Source Tickets

  • Admin selects source sector (e.g., "Sector B")
  • System displays sold tickets in the affected area
  • Admin can select tickets by:
    • Row range (e.g., Rows 1-10)
    • Seat range (e.g., Seats 1-50 per row)
    • Individual selection
  • Selection summary shows:
    • Total tickets selected: [number]
    • Ticket holders affected: [count]
    • Current seat locations

Select Destination Sector

  • Admin selects destination sector (e.g., "Sector A")
  • System validates:
    • Destination sector has sufficient available seats
    • Price category compatibility (or allows price adjustment)
  • Admin chooses seat assignment method:
    • Automatic (Snake algorithm): System assigns best available seats
    • Manual mapping: Admin specifies exact new seat for each ticket

Preview and Confirm Transfer

  • System displays transfer preview:
    • From: Sector B, Row X, Seat Y → To: Sector A, Row M, Seat N
    • For each affected ticket
  • Admin reviews mapping
  • Admin enters reason: "Physical fence relocation - capacity reallocation"
  • Admin clicks "Execute Transfer"

Execute Transfer and Notify

  • System performs atomic operation:
    • Updates all ticket seat assignments to new sector/seats
    • Marks original seats as "Blocked" (unavailable for future sales)
    • Creates audit trail entries
  • Customer notifications sent automatically:
    • Email: "Your seat has been relocated from [old] to [new] due to venue changes"
    • Push notification to HNS app
    • Updated ticket visible in app with new seat details
  • Success summary displayed to admin

Part 5: Search and Modification by Seat/Reservation

Search Method 1: Search by Seat Number

Access Seat Search Interface

  • Admin logs into admin portal
  • Navigates to "Stadium Management"
  • Clicks "Search Seats" button
  • Search interface appears with multiple search options

Search by Specific Seat

  • Admin selects search type: "By Seat Number"
  • Input fields displayed:
    • Stadium/Venue: Dropdown (e.g., Maksimir, Poljud, Opus Arena)
    • Match/Event: Dropdown or "All Events"
    • Section: Text input (e.g., "A", "P53N", "ISTOK C5")
    • Row: Text input (e.g., "5", "15")
    • Seat Number: Text input (e.g., "12", "B3")
  • Admin enters: Stadium: Maksimir, Section: A, Row: 5, Seat: 12
  • Admin clicks "Search"

View Seat Details

  • System retrieves seat information
  • Detailed seat panel displayed:
    • 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: QUOTA / ORDER / STORNO
      • Document ID: Link to full document (e.g., "Quota #300032x")
      • Click to view full document details
    • Customer/Owner Information (if 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)
    • Full audit trail displayed

View Linked Document

  • Admin clicks on linked document: "Quota #300032x"
  • System opens document details in modal or new tab:
    • Quota owner name and organization
    • Quota type (e.g., Sponsor, Official, Partner)
    • Total allocation and usage
    • Deadline
    • All seats allocated under this quota
    • Contact information
    • Payment terms (deferred/immediate)
  • Admin can navigate to quota management from here
  • Admin returns to seat details

Search Method 2: Search by Reservation/Quota

Search by Reservation Number

  • Admin selects search type: "By Reservation/Quota"
  • Input fields displayed:
    • Search Type: Dropdown (Quota, Reservation, Order, Storno)
    • Document Number: Text input
    • Match/Event: Dropdown or "All Events"
    • Customer Name/OIB: Optional text input for filtering
  • Admin enters: Type: Quota, Document: "300032x"
  • Admin clicks "Search"

View Reservation/Quota Summary

  • System retrieves all information for quota 300032x
  • Quota summary panel displayed:
    • 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
  • Seat List displayed in data table:
    • Columns: Section, Row, Seat, Status, Claimed By, Claim Date
    • 50 rows showing all allocated seats
    • Color-coded by status (claimed/available)
    • Sortable and filterable

View Individual Seat from Quota

  • Admin clicks on specific seat in quota list (e.g., Section A, Row 5, Seat 12)
  • System navigates to seat detail view (same as Search Method 1, Step 3)
  • Link back to quota summary available

Search Method 3: Via Interactive Seat Map

Access Stadium Map View

  • Admin logs into admin portal
  • Navigates to "Stadium Management"
  • Selects target match/event from dropdown
  • Interactive stadium seating map loads with color-coded seat status visualization
  • Map controls available:
    • Pan: Click and drag to navigate
    • Zoom: Mouse wheel or pinch gesture to zoom in/out
    • Section labels and row numbers visible at appropriate zoom levels

Navigate and Select Seat via Map

  • Admin uses pan/zoom to navigate to desired area of stadium
  • Admin zooms in on specific section (e.g., Section A)
  • Seat-level detail becomes visible at higher zoom levels
  • Admin clicks on specific seat (e.g., Row 5, Seat 12)
  • Seat highlights on map

View Seat Details in Modal

  • Modal window opens displaying comprehensive seat information:
    • Seat Identifier: Maksimir - Section A - Row 5 - Seat 12
    • Current Status: Sold / Reserved / Available / etc. (color-coded)
    • Match/Event: Croatia vs Poland - 15.03.2026
    • Linked Document:
      • Type: QUOTA / ORDER / STORNO
      • Document ID: Clickable link (e.g., "Quota #300032x")
    • Customer/Owner Information (if 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"
    • Quick Status History (last 5 changes, expandable for full history)
  • Modal includes action buttons:
    • "Modify Assignment"
    • "Change Status"
    • "View Full History"
    • "View Linked Document"
    • "Close"

Perform Operations from Modal

  • Admin can perform any modification operation directly from modal:
    • Change Status: Opens status change form within modal
    • Modify Assignment: Opens assignment modification form
    • View Linked Document: Opens document details in new modal layer
    • View Full History: Expands to show complete audit trail
  • All operations follow same validation and confirmation flows as described in "Modification Operations" section
  • After successful operation, modal updates to reflect new seat state
  • Admin can close modal and continue navigating map
  • Map automatically refreshes to show updated seat color/status

Multi-Seat Selection via Map

  • Admin can hold Ctrl/Cmd and click multiple seats on map
  • Selected seats highlight with selection border
  • Bulk operations button appears: "Modify Selected Seats (X)"
  • Admin can apply bulk status changes to map-selected seats
  • Follows same bulk operation flow as Part 2

Search Method 4: Search by Email Address

Search by Customer Email

  • Admin selects search type: "By Email"
  • Input field displayed:
    • Customer Email: Text input with email format validation
    • Match/Event: Dropdown or "All Events"
  • Admin enters customer email address (full or partial)
  • Admin clicks "Search"

View Email Search Results

  • System returns all tickets/seats associated with email
  • Results displayed in table:
    • Match/Event
    • Seat Location (Section, Row, Seat)
    • Ticket Status
    • Document Type (Order/Quota)
    • Order/Quota ID
    • Purchase/Claim Date
  • Admin can click any row to view full seat details
  • Useful for customer support inquiries: "Find all tickets for customer@email.com"

Advanced Search Interface

  • Admin clicks "Advanced Search"
  • Multiple filter criteria available:
    • Match/Event: Multiple selection
    • Status: Multiple selection (Available, Sold, Reserved, etc.)
    • Section(s): Multiple selection
    • Document Type: Quota, Order, Storno, None
    • Customer OIB: Text input
    • Customer Name: Text input
    • Customer Email: Text input (new field)
    • Date Range: From/To date pickers
    • Modified By: Admin user dropdown
    • Payment Status: Paid, Pending, Deferred
  • Admin sets multiple filters:
    • Match: Croatia vs Poland
    • Status: Sold
    • Document Type: Quota
    • Section: A
  • Admin clicks "Search"

View Search Results

  • System returns matching seats
  • Results displayed in paginated table:
    • Columns: Seat Identifier, Status, Document Type, Customer, Price, Claim Date
    • Total results: 158 seats
    • Export option available (CSV/Excel)
  • Admin can click any row to view seat details
  • Admin can select multiple rows for bulk operations

Modification Operations

Modify Single Seat Assignment

  • From seat detail view (Search Method 1, Step 3)
  • Admin clicks "Modify Assignment" button
  • Modification options displayed:
    • Change Status: Dropdown (respecting valid transitions)
    • Reassign to Different Customer:
      • Search customer by OIB/email
      • Transfer seat to new customer
      • Original customer notified
    • Change Linked Document:
      • Unlink from current quota/order
      • Link to different quota/order
      • Validation: ensure target quota has capacity
    • Add Internal Note: Free text field
  • Admin selects modification type
  • Admin enters required information and reason
  • System validates modification is allowed

Confirm Modification

  • Confirmation dialog displayed:
    • "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"
    • Warning: "Both customers will be notified via email"
  • Admin confirms modification
  • System processes change:
    • Updates seat assignment
    • Updates customer records
    • Updates quota/order records (if applicable)
    • Creates audit log entry
    • Sends notification emails and push notifications
  • Success message: "Seat reassigned successfully"

Audit Trail and History

View Complete Audit Trail

  • From any seat detail view
  • Admin clicks "View Full History"
  • Complete audit log displayed:
    • All changes to this seat across all events
    • Columns: Date/Time, Action, Old Value, New Value, Changed By, Reason, Source
    • Example entries:
      • 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 exportable (CSV)
  • Permanent retention for compliance

Filter Audit Trail

  • Filter options:
    • Date range
    • Action type (Status change, Assignment, Price change, etc.)
    • Admin user
    • Source (Manual, Auto, Import, API)
  • Admin applies filters
  • Filtered results displayed
  • Export filtered audit trail

Search Performance and Optimization

  • Indexed Fields: Seat identifiers, customer OIB, document numbers
  • Caching: Recent searches cached
  • Concurrent Access: Multiple admins can search simultaneously
  • Real-Time Updates: Search results reflect latest data (no stale cache for modifications)

Alternative Flows

A1: Bulk Operation Conflict - Seats Locked

  • Admin attempts bulk status change on section
  • System detects 24 seats currently locked (in customer carts)
  • Warning displayed: "24 seats are currently reserved in customer carts. These will be skipped."
  • Admin options:
    • Proceed with non-locked seats only
    • Wait and retry later
  • If proceed: 832 seats updated, 24 skipped
  • Skipped seats listed in report for admin review

A2: Invalid Status Transition Attempted

  • Admin tries to change Sold seats to Available without refund
  • System blocks operation: "Invalid transition. Sold seats require refund process."
  • Admin must:
    • Use refund workflow instead
    • Or filter selection to exclude Sold seats

A3: Bulk Operation Performance Limit

  • Admin selects entire stadium (50,000 seats)
  • System warns: "Large operation detected. This may take several minutes."
  • Admin confirms
  • System processes in batches of 1,000 seats
  • Progress bar shows: "Processing batch 12/50..."
  • Success summary provided

A4: Concurrent Modification Detected

  • Admin A and Admin B attempt to change same section simultaneously
  • System uses optimistic locking with version numbers
  • First admin's changes commit successfully
  • Second admin receives warning: "Section was modified by another user. Please refresh and retry."
  • Admin refreshes view to see latest status
  • Admin can reapply changes if still needed

Post-Flow Actions

Real-Time Synchronization:

  • All status changes propagate to:
    • Mobile app
    • Capacity dashboard (real-time)
    • Quota allocation system (immediate)
  • Admin receives confirmation of successful sync

Audit Trail Review:

  • Complete history for every seat:
    • All status changes with timestamps
    • Admin who made change
    • Reason provided
    • Source (manual, bulk, import, scheduled, auto)
  • Export capability for compliance
  • Retention: Permanent for audit purposes

Status Analytics Dashboard:

  • Visual charts showing:
    • Current status distribution (pie chart)
    • Admin activity summary
  • Filterable by date range, match, section, admin

Last Updated: January 2026