Skip to content

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