using SlipItIn.Shared.DTOs; using SlipItIn.Shared.Models; namespace SlipItIn.Server.Services; public interface IGameService { Task CreateGameAsync(int hostUserId, string? connectionId = null); Task JoinGameAsync(string lobbyCode, int userId, string? connectionId = null); Task StartGameAsync(int gameId); Task SetPlayerReadyAsync(int gameId, int playerId); Task> DealCardsAsync(int gameId); Task SubmitSlipAsync(int gameId, int playerId, int cardId); Task CreateChallengeAsync(int gameId, int challengingPlayerId, int targetCardId); Task ResolveChallengeAsync(int challengeId, bool approved); Task GetGameStateAsync(int gameId); Task GetPlayerHandAsync(int playerId); Task GetGameAsync(int gameId); }