YD_TrainingCompetition_Api/Competition/ICompetitionSessionService.cs
2026-06-10 11:16:46 +08:00

20 lines
1.4 KiB
C#

using YD_TrainingCompetition_Api.Models;
namespace YD_TrainingCompetition_Api.Competition;
public interface ICompetitionSessionService
{
CompetitionSessionState GetState();
Task<CompetitionSessionState> CreateAsync(CreateCompetitionSessionRequest request, CancellationToken cancellationToken = default);
Task<CompetitionSessionState> SelectRoundAsync(int roundIndex, CancellationToken cancellationToken = default);
Task<CompetitionSessionState> SelectNextRoundAsync(CancellationToken cancellationToken = default);
Task<CompetitionSessionState> SelectPreviousRoundAsync(CancellationToken cancellationToken = default);
Task<CompetitionSessionState> DownloadCurrentRoundAsync(CancellationToken cancellationToken = default);
Task<CompetitionSessionState> StartAsync(CancellationToken cancellationToken = default);
Task<CompetitionSessionState> StopAsync(CancellationToken cancellationToken = default);
Task<CompetitionSessionState> ResetCurrentRoundAsync(CancellationToken cancellationToken = default);
Task<CompetitionSessionState> SetParticipantCountAsync(int participantId, int count, CancellationToken cancellationToken = default);
Task<CompetitionSessionState> ChangeParticipantCountAsync(int participantId, int delta, CancellationToken cancellationToken = default);
Task ApplyDeviceSnapshotAsync(DeviceSnapshot snapshot, CancellationToken cancellationToken = default);
}