E9-F2: Tiered Ticket Visibility¶
Epic: E9: Ticket Management & Delivery
Size: S (Small)
Problem / Outcome¶
Show different ticket details based on time before match.
Scope¶
In-Scope:
- Until 5 hours before kick-off: virtual ticket with seat details and gate, no barcode or QR (HNSTIK-327)
- From 5 hours before kick-off: full ticket with QR code visible, and the PDF
Out-of-Scope:
- Custom timing per match
Acceptance Criteria¶
- AC1: 10 days before match: virtual ticket with seat details and gate, no QR
- AC2: 4 hours before match: full ticket with QR code visible
Data Model Impact¶
No new tables required (display logic).
Visibility tiers:
- TIER_VIRTUAL_TICKET: more than 5 hours before kick-off
- TIER_FULL_TICKET: 5 hours or less
- (order info only remains for a ticket whose match cannot be timed)
Response includes:
- visibility_tier (ENUM)
- show_qr (BOOLEAN)
- show_seat_details (BOOLEAN)
- qr_available_at (TIMESTAMP)
Permissions/Roles¶
- Ticket holder
How to Verify¶
npm test -- --grep "tiered visibility"
Expected: Correct content shown based on time.
Dependencies¶
Implementation Tasks¶
See E9: Ticket Management Tasks
Doc References¶
Last Updated: January 2026