Flow: Match Stadium Configuration¶
Actor¶
Administrator (HNS Staff)
Preconditions¶
- Admin is logged into the Admin Portal
- For HOME matches: Base stadium configurations exist in the system (e.g., Maksimir, Poljud)
- A match has been created or is being created
Match Types¶
The system supports two types of matches with different stadium configuration requirements:
| Match Type | Stadium | Seat Map | Capacity | Example |
|---|---|---|---|---|
| HOME | Pre-created Croatian stadiums | Required (already configured) | Auto-calculated from seat map | Croatia vs Poland at Maksimir |
| AWAY | Created per match | Optional (may be added later) | Manually entered as estimate | Gibraltar vs Croatia at Victoria Stadium |
Capacity Calculation
For HOME matches, stadium total_capacity is automatically calculated as the sum of all sector seat counts from their seat maps. There is no manual capacity input during stadium creation. For AWAY matches without seat maps, capacity is manually entered as an estimate and updated when a seat map is later created.
Flow A: HOME Match Stadium Configuration¶
Flow Steps¶
-
Select Match & Stadium
- Admin navigates to "Match Management"
- Selects a specific match (Match Type: HOME)
- Clicks "Configure Stadium"
- System displays available base stadium templates (pre-created Croatian stadiums):
- Maksimir (Zagreb)
- Poljud (Split)
- Opus Arena (Osijek)
- Rujevica (Rijeka)
- Varaždin
- Other configured stadiums
-
Load Base Configuration
- Admin selects a base stadium (e.g., "Maksimir - Standard")
- System creates a copy of the stadium configuration specifically for this match
- System displays the interactive stadium map with all sectors and zones
-
Configure Sector Availability
- Admin selects sectors to be active for this match
- Can toggle sectors to "Closed" or "Maintenance" (not sellable)
- Can designate sectors for specific purposes (e.g., "Away Fans", "VIP", "Press")
- Can designate whole sectors as "Free" (VAT exempt)
- System updates the total sellable capacity for the match
-
Manage Prices & Categories
- Admin defines Price Categories and sets values (e.g., "Category 1" - 50€)
- Admin selects a category and clicks on sectors to apply it
- System visually updates the map with category colors and prices
- Admin can bulk-apply categories to multiple sectors
-
Configure Allocation Rules
- Allocation algorithm is Snake
- Defines "sterile zones" or buffer seats around away sectors if needed
- Sets specific hold/reservation rules for partner quotas
-
Validation & Save
- Admin clicks "Validate Configuration"
- System checks for unassigned sectors, pricing gaps, or capacity issues
- Admin clicks "Save Configuration"
- System locks the configuration for the match (versioned)
Alternative Flows¶
A1: Modify Active Match Configuration
- Trigger: Match is already on sale, but a sector needs to be closed (e.g., security reason)
- Admin selects "Edit Active Configuration"
- System warns "Tickets already sold in this match"
- Admin blocks unsold seats in the target sector
- System prevents blocking of already sold seats
- Admin saves changes; unsold seats are removed from inventory immediately
A2: Apply Previous Match Template
- Trigger: Admin wants to use the exact setup from a previous similar match
- Admin selects "Import from Previous Match"
- Chooses a past match (e.g., "CRO vs FRA 2022")
- System duplicates that specific match's configuration (sectors, prices, rules)
- Admin reviews and saves
Flow B: AWAY Match Stadium Configuration¶
For away matches, the stadium must be created specifically for the match since it's not a pre-configured Croatian venue.
Flow Steps¶
-
Select Match & Create Stadium
- Admin navigates to "Match Management"
- Selects a specific match (Match Type: AWAY)
- Clicks "Configure Stadium"
- System prompts: "This is an away match. Create new stadium or select existing away stadium."
- Admin clicks "Create New Stadium"
-
Enter Stadium Details
- Admin enters stadium information:
- Stadium Name (required): e.g., "Victoria Stadium"
- City: e.g., "Gibraltar"
- Country: e.g., "Gibraltar"
- Full Address: Optional
- Admin clicks "Continue to Sectors"
- Admin enters stadium information:
-
Configure Sectors
- Admin creates sectors for Croatian fan allocation:
- Sector Name: e.g., "Away Stand Block C"
- Estimated Capacity: e.g., 500 seats (manually entered since no seat map)
- Technical Seats (not for sale): e.g., 20 (camera positions, security, etc.)
- Sellable Capacity: Auto-calculated (Estimated - Technical = 480)
- Admin can add multiple sectors if Croatian allocation spans multiple areas
- For each sector:
- Can mark as "Non-numbered" if no seat map available
- Can set pricing category
- System validates total allocation matches HNS quota from away federation
- Admin creates sectors for Croatian fan allocation:
-
Seat Map Configuration (Optional)
-
Option A: No Seat Map Available (Initial Setup)
- Admin checks "Non-numbered seats (seat map TBD)"
- Tickets sold using quantity-based allocation
- Seat numbers assigned later when map becomes available
- See Away Match Tickets (Non-Numbered Seats)
-
Option B: Seat Map Available
- Admin uploads seat map file from stadium seating software
- System processes map:
- Marks gaps (aisles, stairs, etc.)
- Identifies technical seats (cameras, security positions)
- Defines seat positions and visual layout
- Admin reviews and approves seat map
- Tickets can be sold with specific seat assignments
-
-
Create Seat Map Later (For Non-Numbered Matches)
- When HNS receives sector allocation info from away federation (e.g., "Block C, 500 seats"):
- Admin navigates to match stadium configuration
- Clicks "Add Seat Map"
- HNS creates sector layout in system (defines the seat numbering):
- Sector name (e.g., "Away Stand Block C")
- Number of rows (e.g., 1-15)
- Seats per row (e.g., 1-35)
- Technical seats (non-sellable positions)
- System validates seat map capacity ≥ sold tickets
- Admin clicks "Assign Seats to Sold Tickets"
- Snake Algorithm Execution:
- System assigns all sold tickets to specific seats
- Assignment order: configurable (Quota First or Chronological)
- Tickets from same order assigned adjacent seats
- Algorithm fills rows in snaking pattern (left-to-right, then right-to-left)
- Admin reviews assignments
- Admin confirms and finalizes
- Export attendee list (Excel with names and seat numbers) to send to away federation
- Ticket delivery depends on away venue response:
- If venue accepts HNS app: Fans notified, use app QR code for entry
- If venue issues own tickets: HNS receives PDFs and mass-emails to fans
- See Away Match Tickets (Non-Numbered Seats) for full workflow
-
Validation & Save
- Admin clicks "Validate Configuration"
- System checks:
- All required fields completed
- Capacity matches allocation from away federation
- Pricing configured for all sectors
- Admin clicks "Save Configuration"
- Stadium configuration saved for this match
Alternative Flows (AWAY Matches)¶
A1: Reuse Existing Away Stadium
- Admin selects "Use Existing Away Stadium" instead of "Create New"
- System lists previously created away stadiums
- Admin selects existing stadium (e.g., "Wembley Stadium" from previous away match)
- System loads previous configuration as template
- Admin adjusts sectors/capacity as needed for this match
A2: Add Seat Map to Non-Numbered Match
- Trigger: HNS receives sector allocation info from away federation after sales started
- Admin navigates to active away match
- Clicks "Stadium Configuration" > "Add Seat Map"
- Creates sector layout in system (HNS defines seat numbering)
- Follows step 5 above to assign seats using Snake algorithm
- Exports attendee list with seat assignments to away federation
- Ticket delivery based on away venue's entry method (HNS app or PDF)
Last Updated: January 2026