namespace PowderCoating.Core.Entities;

/// <summary>
/// A platform-level IP address block. When an IP is active here, login attempts
/// from that address are rejected before Identity even checks credentials.
/// No BaseEntity — no company scope, no soft delete; hard-delete is fine for bans.
/// </summary>
public class BannedIp
{
    public int Id { get; set; }
    public string IpAddress { get; set; } = string.Empty;
    public string? Reason { get; set; }
    public string? BannedByUserId { get; set; }
    public DateTime BannedAt { get; set; } = DateTime.UtcNow;
    public DateTime? ExpiresAt { get; set; }  // null = permanent
    public bool IsActive { get; set; } = true;
}
