namespace KArtSell.Modules.ModelOperations.Compliance;

/// <summary>
/// GDPR retention tracker for personal data (right-to-be-forgotten support).
/// Tracks which audit events contain personal data and when to purge/redact.
/// </summary>
public class GdprRetention
{
    public Guid Id { get; set; }
    public Guid EventId { get; set; }
    public Guid? CustomerId { get; set; }
    public string[]? DataCategories { get; set; } // PII, EMAIL, TRADING_HISTORY, PORTFOLIO_DATA, etc.
    public DateOnly RetentionEndsAt { get; set; }
    public required string PurgeStatus { get; set; } // PENDING, PURGED, EXCEPTION
    public DateTime? PurgedAt { get; set; }
    public string? ExceptionReason { get; set; }
    public DateTime PublishedAt { get; set; }
    public int Revision { get; set; }
}

/// <summary>
/// GDPR purge status enum.
/// </summary>
public static class GdprPurgeStatus
{
    public const string Pending = "PENDING";
    public const string Purged = "PURGED";
    public const string Exception = "EXCEPTION";
}

/// <summary>
/// Data categories for GDPR tracking.
/// </summary>
public static class GdprDataCategories
{
    public const string PersonallyIdentifiableInformation = "PII";
    public const string EmailAddress = "EMAIL";
    public const string TradingHistory = "TRADING_HISTORY";
    public const string PortfolioData = "PORTFOLIO_DATA";
    public const string PaymentInformation = "PAYMENT_INFO";
}
