using Microsoft.AspNetCore.Mvc;
using SVSim.EmulatedEntrypoint.Models.Dtos.BattlePass;
using SVSim.EmulatedEntrypoint.Models.Dtos.Requests;
using SVSim.EmulatedEntrypoint.Services;
namespace SVSim.EmulatedEntrypoint.Controllers;
///
/// /battle_pass/* — season metadata, premium-pass purchase. Wire shapes mirror
/// Wizard/BattlePass{Info,PurchaseInfo,Buy}Task.cs.
///
[Route("battle_pass")]
public class BattlePassController : SVSimController
{
private readonly IBattlePassService _battlePass;
public BattlePassController(IBattlePassService battlePass)
{
_battlePass = battlePass;
}
[HttpPost("info")]
public async Task Info(BaseRequest request, CancellationToken ct)
{
if (!TryGetViewerId(out long viewerId)) return Unauthorized();
var info = await _battlePass.GetInfoAsync(viewerId, ct);
if (info is null) return Ok(new { }); // off-season: empty payload
return Ok(info);
}
}