E2-F7: Match Cancellation Workflow¶
Epic: E2: Match & Stadium Management
Size: M (Medium)
Problem / Outcome¶
Admins cancel matches with automatic refund processing.
Scope¶
In-Scope:
- Cancel match action
- Super Admin approval requirement
- Batch refund trigger for all ticket holders
- Notification to all ticket holders
- QR code invalidation
Out-of-Scope:
- Partial cancellation
- Rescheduling
Acceptance Criteria¶
- AC1: Given match cancellation, when approved, then all tickets cancelled and refunds initiated
- AC2: Given card payments, when cancelled, then refunds process via gateway
- AC3: Given cancellation complete, then all ticket holders notified via email and push
Data Model Impact¶
Match table:
- status (ENUM includes: cancelled)
Ticket table:
- status (ENUM includes: cancelled_match_cancelled)
RefundBatch table:
- id (UUID, PK)
- match_id (UUID, FK)
- status (ENUM: pending, processing, completed)
- total_amount (DECIMAL)
- ticket_count (INTEGER)
- created_at (TIMESTAMP)
Permissions/Roles¶
- Admin (Match Manager) - initiates cancellation
- Super Admin - approves cancellation
How to Verify¶
npm test -- --grep "match cancellation"
Expected: Status transitions, refunds triggered, notifications sent.
Dependencies¶
Implementation Tasks¶
See E2: Match ## Doc References Stadium Tasks
Doc References¶
Last Updated: January 2026