E3-F6: Sector-to-Sector Ticket Transfer¶
Epic: E3: Seat Inventory Management
Size: M (Medium)
Problem / Outcome¶
Move sold tickets from one sector to another when stadium changes.
Scope¶
In-Scope:
- Select source tickets for transfer
- Select destination sector
- Snake algorithm for seat reassignment
- Customer notification after transfer
Out-of-Scope:
- Cross-match transfers
Acceptance Criteria¶
- AC1: Given tickets in Sector B, when transferred to Sector A, then new seats assigned and original seats blocked
- AC2: Transfer is atomic (all or nothing per ticket)
- AC3: Customers notified via email and push with new seat details
Data Model Impact¶
SectorTransfer table:
- id (UUID, PK)
- match_id (UUID, FK)
- source_sector_id (UUID, FK)
- destination_sector_id (UUID, FK)
- ticket_count (INTEGER)
- transferred_by (UUID, FK)
- created_at (TIMESTAMP)
SectorTransferDetail table:
- id (UUID, PK)
- transfer_id (UUID, FK)
- ticket_id (UUID, FK)
- old_seat_id (UUID, FK)
- new_seat_id (UUID, FK)
Permissions/Roles¶
- Admin (Inventory Manager)
How to Verify¶
npm test -- --grep "sector transfer"
Expected: Tickets moved, notifications sent, original seats blocked.
Dependencies¶
- E3-F2: Individual Seat Status Change
- E9-F1: Ticket Generation with QR Code
- E15-F1: Transactional Email Service
Implementation Tasks¶
Doc References¶
Last Updated: January 2026