Skip to content

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

See E6: Loyalty Program Tasks

Doc References


Last Updated: January 2026