using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations.Schema; namespace Nuuru.Server.Models { public enum BanZone { Sitewide, Booruwide, Forumwide, } public class Ban { [DatabaseGenerated(DatabaseGeneratedOption.Identity)] public Guid Id { get; set; } = Guid.NewGuid(); [Required] public string Reason { get; set; } = string.Empty; [Required] public DateTime StartTime { get; set; } [Required] public DateTime EndTime { get; set; } public BanZone Zone { get; set; } [Required] public ApplicationUser User { get; set; } public ApplicationUser? BannedBy { get; set; } public bool Active { get; set; } = true; public bool AppealsDenied { get; set; } = false; public ICollection Appeals { get; set; } = new List(); public bool IsBanActive() => Active && DateTime.UtcNow > StartTime && DateTime.UtcNow < EndTime; } }