using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations.Schema; namespace Nuuru.Server.Models { public class IpBanAppeal { [DatabaseGenerated(DatabaseGeneratedOption.Identity)] public Guid Id { get; set; } = Guid.NewGuid(); [Required] public Guid IpBanId { get; set; } public IpBan IpBan { get; set; } = null!; // For IP bans, the user might not be logged in, so UserId is optional public Guid? UserId { get; set; } public ApplicationUser? User { get; set; } [Required] [MaxLength(45)] public string IpAddress { get; set; } = string.Empty; [Required] [MaxLength(4000)] public string Reason { get; set; } = string.Empty; public BanAppealStatus Status { get; set; } = BanAppealStatus.Pending; public DateTime CreatedAt { get; set; } = DateTime.UtcNow; public DateTime? ResolvedAt { get; set; } [MaxLength(2000)] public string? ModeratorNote { get; set; } public Guid? ModeratorId { get; set; } public ApplicationUser? Moderator { get; set; } } }