Preskoči na sadržaj

E7-F3: Multi-Match Quota Import

Epic: E7: Quota Management

Size: S (Small)

Problem / Outcome

Create same quota allocation across multiple matches.

Scope

In-Scope:

  • Select multiple matches
  • Upload CSV with recipients
  • Create identical allocation per match

Out-of-Scope:

  • Different quantities per match

Acceptance Criteria

  • AC1: Given 3 matches selected and CSV uploaded, then each recipient gets allocation for all 3 matches
  • AC2: Requires the same ticket quantity for all selected matches. Sector codes are optional and stadium-specific — if a row supplies them, they must exist on every selected match or that row is rejected up front (not silently skipped for the matches that don't match). Leave the sector column blank to allocate over each match's full inventory — the correct choice for a multi-stadium tournament, where stadiums rarely share sector codes.
  • AC3: Each match gets separate quota record linked by batch_id

Data Model Impact

Quota table:
- batch_id (UUID, nullable) - links quotas across matches

MultiMatchQuotaBatch table:
- id (UUID, PK)
- match_ids (UUID[])
- total_recipients (INTEGER)
- quantity_per_match (INTEGER)
- sector_ids (UUID[])
- created_by (UUID, FK)
- created_at (TIMESTAMP)

Permissions/Roles

  • Admin (Quota Manager)

How to Verify

npm test -- --grep "multi-match quota"

Expected: Quotas created for all selected matches.

Dependencies

Implementation Tasks

See E7: Quota Management Tasks

Doc References


Last Updated: January 2026