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:
47
SlipItIn.Shared/DTOs/GameStateDto.cs
Normal file
47
SlipItIn.Shared/DTOs/GameStateDto.cs
Normal file
@@ -0,0 +1,47 @@
|
||||
namespace SlipItIn.Shared.DTOs;
|
||||
|
||||
public class GameStateDto
|
||||
{
|
||||
public int GameId { get; set; }
|
||||
public string LobbyCode { get; set; } = string.Empty;
|
||||
public string Status { get; set; } = string.Empty;
|
||||
public List<PlayerInfoDto> Players { get; set; } = [];
|
||||
public int CurrentRound { get; set; }
|
||||
public int RoundTimeRemaining { get; set; }
|
||||
}
|
||||
|
||||
public class PlayerInfoDto
|
||||
{
|
||||
// Öffentliche Daten (für alle sichtbar)
|
||||
public int PlayerId { get; set; }
|
||||
public string Username { get; set; } = string.Empty;
|
||||
public int Score { get; set; }
|
||||
public bool IsReady { get; set; }
|
||||
public int CardCount { get; set; } // Anzahl der Karten (nicht die Karten selbst!)
|
||||
}
|
||||
|
||||
public class PlayerHandDto
|
||||
{
|
||||
// Private Daten (nur für den Spieler selbst)
|
||||
public int PlayerId { get; set; }
|
||||
public List<PlayerCardDto> Cards { get; set; } = [];
|
||||
}
|
||||
|
||||
public class PlayerCardDto
|
||||
{
|
||||
public int CardId { get; set; }
|
||||
public int PhraseId { get; set; }
|
||||
public string Text { get; set; } = string.Empty;
|
||||
public bool IsUsed { get; set; }
|
||||
}
|
||||
|
||||
public class SlipChallengeDto
|
||||
{
|
||||
public int ChallengeId { get; set; }
|
||||
public int ChallengingPlayerId { get; set; }
|
||||
public string ChallengingPlayerName { get; set; } = string.Empty;
|
||||
public int TargetPlayerId { get; set; }
|
||||
public int TargetCardId { get; set; }
|
||||
public string Status { get; set; } = string.Empty;
|
||||
public DateTime CreatedAt { get; set; }
|
||||
}
|
||||
Reference in New Issue
Block a user