namespace SlipItIn.Shared.Models; public enum ChallengeStatus { Pending, // Beschuldigung eingegangen, wartet auf Bestätigung/Ablehnung Approved, // Beschuldigung war berechtigt -> Beschuldigter muss Karte ablegen und 2 neue ziehen Rejected // Beschuldigung angefochten -> Beschuldigung zurückgenommen } 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; } // Optional: Angefochtene Karte falls bekannt/zugeordnet 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; } // Die angefochtene Phrase (optional) }