Preskoči na sadržaj

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

Implementation Tasks

See E3: Seat Inventory Tasks

Doc References


Last Updated: January 2026