using System.ComponentModel.DataAnnotations; namespace GameList.Domain; public class Player { public Guid Id { get; set; } = Guid.NewGuid(); [MaxLength(16)] public string? DisplayName { get; set; } [MaxLength(24)] public string Username { get; set; } = string.Empty; [MaxLength(24)] public string NormalizedUsername { get; set; } = string.Empty; public byte[] PasswordHash { get; set; } = []; public byte[] PasswordSalt { get; set; } = []; public int PasswordHashVersion { get; set; } = 1; public DateTimeOffset? LastLoginAt { get; set; } public bool IsAdmin { get; set; } public bool IsOwner { get; set; } public Phase CurrentPhase { get; set; } = Phase.Suggest; public bool VotesFinal { get; set; } public bool HasJoker { get; set; } public DateTimeOffset CreatedAt { get; set; } = DateTimeOffset.UtcNow; public ICollection Suggestions { get; set; } = new List(); public ICollection Votes { get; set; } = new List(); }