E6-F2: Loyalty Early Access Configuration¶
Epic: E6: Loyalty Program
Size: S (Small)
Problem / Outcome¶
Configure loyalty-based early access per match.
Scope¶
In-Scope:
- Early access window dates configuration
- Configurable points-to-allocation mapping per match
- Admin view of user loyalty points for allocation planning
- Hard limit of 4 tickets enforcement
Out-of-Scope:
- Tier-based perks beyond ticket allocation
Acceptance Criteria¶
- AC1: Admin configures early access start/end dates for match
- AC2: Admin configures points-to-allocation thresholds per match (fully configurable, not hardcoded)
- AC3: Admin can view user loyalty points to understand ticket allocation distribution
- AC4: Hard limit of 4 tickets per match enforced across all phases
Data Model Impact¶
SalesPhase table:
- eligibility_rules_json contains:
{
"type": "loyalty",
"thresholds": [
{"min_points": 27, "max_tickets": 4},
{"min_points": 20, "max_tickets": 3},
{"min_points": 10, "max_tickets": 2},
{"min_points": 0, "max_tickets": 0}
]
}
LoyaltyTierConfig table:
- id (UUID, PK)
- match_id (UUID, FK)
- min_points (INTEGER)
- max_tickets (INTEGER)
- created_at (TIMESTAMP)
Permissions/Roles¶
- Admin (Match Manager)
How to Verify¶
npm test -- --grep "loyalty early access config"
Expected: Configuration saved and applied during purchase.
Dependencies¶
Implementation Tasks¶
Doc References¶
Last Updated: January 2026