feat(svc): IArenaTwoPickService + response DTOs + GetTopAsync

6 response DTOs, IArenaTwoPickService interface + ArenaTwoPickException,
ArenaTwoPickService skeleton with GetTopAsync implemented and stubs for
Tasks 13-15. 3 NUnit tests for GetTopAsync all pass. DI: AddScoped.
This commit is contained in:
gamer147
2026-05-31 10:51:41 -04:00
parent a98b60dd36
commit ba49852c42
10 changed files with 334 additions and 0 deletions

View File

@@ -0,0 +1,20 @@
using SVSim.EmulatedEntrypoint.Models.Dtos.Responses.ArenaTwoPick;
namespace SVSim.EmulatedEntrypoint.Services;
public interface IArenaTwoPickService
{
Task<TopResponseDto> GetTopAsync(long viewerId);
Task<EntryResponseDto> EntryAsync(long viewerId, int consumeItemType);
Task<ClassChooseResponseDto> ChooseClassAsync(long viewerId, int classId);
Task<CardChooseResponseDto> ChooseCardAsync(long viewerId, long selectedId);
Task<FinishResponseDto> RetireAsync(long viewerId);
Task<FinishResponseDto> FinishAsync(long viewerId);
Task<BattleFinishResultDto> RecordBattleResultAsync(long viewerId, bool isWin);
}
public class ArenaTwoPickException : Exception
{
public string ErrorCode { get; }
public ArenaTwoPickException(string errorCode) : base(errorCode) { ErrorCode = errorCode; }
}