E9-F1: Ticket Generation with QR Code¶
Epic: E9: Ticket Management & Delivery
Size: S (Small)
Problem / Outcome¶
Generate tickets with QR codes after purchase/claiming.
Scope¶
In-Scope:
- Ticket record creation
- QR code generation with unique identifier
- Unique ticket identifier
Out-of-Scope:
- Physical ticket design
Acceptance Criteria¶
- AC1: Ticket created with unique ID, match_id, seat_id, holder info
- AC2: QR code generated with ticket ID encoded
- AC3: Ticket status set to SOLD
Data Model Impact¶
Ticket table:
- id (UUID, PK)
- order_id (UUID, FK)
- match_id (UUID, FK)
- seat_id (UUID, FK)
- barcode (VARCHAR, UNIQUE) - encoded in QR
- qr_code_data (VARCHAR) - full QR payload
- holder_name (VARCHAR)
- holder_oib (VARCHAR, encrypted)
- holder_email (VARCHAR)
- status (ENUM: sold, attended, cancelled, transferred)
- created_at (TIMESTAMP)
Permissions/Roles¶
- System (triggered by payment)
How to Verify¶
npm test -- --grep "ticket generation"
Expected: Ticket created with QR code.
Dependencies¶
Implementation Tasks¶
See E9: Ticket Management Tasks
Doc References¶
Last Updated: January 2026