Backend für "Slip It In" mit ASP.NET Core erstellt
- Neues Backend-Projekt mit Entity Framework Core (PostgreSQL) und geteilten Modellen/DTOs angelegt - Datenbankstruktur und Migrations implementiert (User, Game, Player, Phrase, PlayerCard, GameRound, SlipChallenge) - SignalR-Hub für Spielkommunikation (Lobby, Spielstart, Kartenvergabe, Slip/Challenge) hinzugefügt - Spiellogik und DB-Zugriffe im GameService gekapselt - JWT-Authentifizierung und CORS für Entwicklung konfiguriert - Projektdateien, NuGet-Abhängigkeiten und .gitignore aktualisiert - Startkonfiguration und Umgebungsdateien angepasst
This commit is contained in:
19
SlipItIn.Server/Services/IGameService.cs
Normal file
19
SlipItIn.Server/Services/IGameService.cs
Normal file
@@ -0,0 +1,19 @@
|
||||
using SlipItIn.Shared.DTOs;
|
||||
using SlipItIn.Shared.Models;
|
||||
|
||||
namespace SlipItIn.Server.Services;
|
||||
|
||||
public interface IGameService
|
||||
{
|
||||
Task<Game> CreateGameAsync(int hostUserId, string? connectionId = null);
|
||||
Task<Game> JoinGameAsync(string lobbyCode, int userId, string? connectionId = null);
|
||||
Task<Game> StartGameAsync(int gameId);
|
||||
Task<Game> SetPlayerReadyAsync(int gameId, int playerId);
|
||||
Task<List<PlayerCard>> DealCardsAsync(int gameId);
|
||||
Task<bool> SubmitSlipAsync(int gameId, int playerId, int cardId);
|
||||
Task<SlipChallenge> CreateChallengeAsync(int gameId, int challengingPlayerId, int targetCardId);
|
||||
Task<SlipChallenge> ResolveChallengeAsync(int challengeId, bool approved);
|
||||
Task<GameStateDto> GetGameStateAsync(int gameId);
|
||||
Task<PlayerHandDto> GetPlayerHandAsync(int playerId);
|
||||
Task<Game> GetGameAsync(int gameId);
|
||||
}
|
||||
Reference in New Issue
Block a user