using SVSim.Database.Enums;
using SVSim.Database.Models;
namespace SVSim.Database.Repositories.BattlePass;
public interface IViewerBattlePassRepository
{
///
/// Get-or-create progress row for (viewer, season). New rows are added to the change-tracker
/// but NOT saved — caller batches with other mutations.
///
Task GetOrCreateProgressAsync(long viewerId, int seasonId, CancellationToken ct);
///
/// All claim rows for (viewer, season). Used by /battle_pass/info to enrich is_received.
///
Task> GetClaimsAsync(long viewerId, int seasonId, CancellationToken ct);
///
/// Append a claim row (in-memory; caller saves).
///
void AddClaim(long viewerId, int seasonId, BattlePassTrack track, int level, DateTimeOffset claimedAt);
}