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:
26
SlipItIn.Shared/Models/SlipChallenge.cs
Normal file
26
SlipItIn.Shared/Models/SlipChallenge.cs
Normal file
@@ -0,0 +1,26 @@
|
||||
namespace SlipItIn.Shared.Models;
|
||||
|
||||
public enum ChallengeStatus
|
||||
{
|
||||
Pending, // Beschuldigung eingegangen, wartet auf Bestätigung/Ablehnung
|
||||
Approved, // Beschuldigung war berechtigt → Phrase bleibt beim Beschuldiger
|
||||
Rejected // Beschuldigung falsch → Beschuldiger erhält die Phrase
|
||||
}
|
||||
|
||||
public class SlipChallenge
|
||||
{
|
||||
public int Id { get; set; }
|
||||
public int GameRoundId { get; set; }
|
||||
public int ChallengingPlayerId { get; set; } // Wer beschuldigt
|
||||
public int TargetPlayerId { get; set; } // Wer beschuldigt wird
|
||||
public int TargetCardId { get; set; } // Welche Phrase wird als falsch behauptet
|
||||
public ChallengeStatus Status { get; set; } = ChallengeStatus.Pending;
|
||||
public DateTime CreatedAt { get; set; } = DateTime.UtcNow;
|
||||
public DateTime? ResolvedAt { get; set; }
|
||||
|
||||
// Navigation
|
||||
public GameRound GameRound { get; set; } = null!;
|
||||
public Player ChallengingPlayer { get; set; } = null!; // Der Beschuldiger
|
||||
public Player TargetPlayer { get; set; } = null!; // Der Beschuldigte
|
||||
public PlayerCard TargetCard { get; set; } = null!; // Die angefochtene Phrase
|
||||
}
|
||||
Reference in New Issue
Block a user