Preskoči na sadržaj

E2-F3: Stadium Template Management

Epic: E2: Match & Stadium Management

Size: M (Medium)

Problem / Outcome

Pre-created stadium configurations for Croatian venues.

Scope

In-Scope:

  • CRUD /admin/stadiums for templates
  • Sectors, rows, seats configuration
  • Base capacity management
  • Predefined Croatian venues with pre-configured seat maps (Maksimir, Poljud, Opus Arena, Rujevica, Varazdin)

Out-of-Scope:

Pre-configured Seat Maps

Stadium templates for Croatian venues include fully configured seat maps with all rows and individual seats pre-defined. When an admin selects a template for a match, the complete seat inventory is copied. For new or away stadiums, use E2-F10: Sector Seat Map Configuration to define the seat structure.

Acceptance Criteria

  • AC1: Given stadium template exists, when admin selects for match, then copy is created for match-specific config
  • AC2: Given stadium template, when viewing, then all sectors with seat counts are displayed
  • AC3: Admin can list available templates (Maksimir, Poljud, Opus Arena, Rujevica, Varazdin)

Data Model Impact

Stadium table:
- id (UUID, PK)
- name (VARCHAR)
- city (VARCHAR)
- type (ENUM: HOME, AWAY)
- base_capacity (INTEGER) — Auto-calculated as sum of sector capacities (not user input)
- created_at (TIMESTAMP)

Sector table:
- id (UUID, PK)
- stadium_id (UUID, FK)
- name (VARCHAR)
- capacity (INTEGER) — Derived from seat count when seat map exists; manually entered for sectors without seat maps

SeatTemplate table:
- id (UUID, PK)
- sector_id (UUID, FK)
- row_number (VARCHAR)
- seat_number (VARCHAR)

Permissions/Roles

  • Admin (Stadium Manager)

How to Verify

npm test -- --grep "stadium template"

Expected: Templates load correctly, copy mechanism works.

Dependencies

  • None (foundational data)

Implementation Tasks

See E2: Match ## Doc References Stadium Tasks

Doc References


Last Updated: January 2026