using System.ComponentModel.DataAnnotations; namespace DorkNet.Server.Data.Entities; /// /// One per-room ban issued by a room owner / admin via /// POST /api/rooms/v2/banfromroom. The match service consults /// these rows when resolving an instance join: if the joining player /// has an active row matching the room id, the join is refused. /// public class RoomBanEntity { public long Id { get; set; } public long RoomId { get; set; } public long BannedPlayerId { get; set; } public long BannedByPlayerId { get; set; } /// BanType enum mirror: 0 = Soft (kick), 1 = Permanent, /// 2 = Temporary (until ). public int BanType { get; set; } public DateTime? Until { get; set; } [MaxLength(512)] public string Reason { get; set; } = string.Empty; public DateTime CreatedAt { get; set; } = DateTime.UtcNow; }