feat(bp): AddPointsAsync plumbing + level-cross auto-grant + weekly cap

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
gamer147
2026-05-26 23:47:30 -04:00
parent 4438e81e37
commit 9147ab0ec7
3 changed files with 222 additions and 0 deletions

View File

@@ -5,6 +5,16 @@ namespace SVSim.EmulatedEntrypoint.Services;
public interface IBattlePassService
{
/// <summary>
/// Plumbing for future point-source endpoints (mission/retire, battle finish handlers).
/// Bumps gauge by min(amount, weekly headroom), auto-grants rewards on every level crossed
/// (premium track only when IsPremium), writes claim rows + currency/collection mutations
/// via RewardGrantService. Returns delta info for caller to embed in
/// battle_pass_gauge_info on its response. No live caller in v1; tested directly.
/// </summary>
Task<BattlePassPointGrant> AddPointsAsync(
long viewerId, BattlePassPointSource source, int amount, CancellationToken ct);
/// <summary>Global level curve as wire-string dictionary; null if no levels seeded.</summary>
Task<IReadOnlyDictionary<string, BattlePassLevel>?> GetLevelCurveAsync(CancellationToken ct);