namespace CMSMicroservice.Domain.Entities.History;

/// <summary>
/// تاریخچه تغییرات تنظیمات سیستم (برای Audit)
/// </summary>
public class SystemConfigurationHistory : BaseAuditableEntity
{
    /// <summary>
    /// شناسه تنظیم
    /// </summary>
    public long ConfigurationId { get; set; }

    /// <summary>
    /// SystemConfiguration Navigation Property
    /// </summary>
    public virtual SystemConfiguration? Configuration { get; set; }

    /// <summary>
    /// محدوده تنظیمات
    /// </summary>
    public ConfigurationScope Scope { get; set; }

    /// <summary>
    /// کلید تنظیم
    /// </summary>
    public string Key { get; set; }

    /// <summary>
    /// مقدار قبل از تغییر
    /// </summary>
    public string OldValue { get; set; }

    /// <summary>
    /// مقدار بعد از تغییر
    /// </summary>
    public string NewValue { get; set; }

    /// <summary>
    /// دلیل تغییر (اختیاری)
    /// </summary>
    public string? Reason { get; set; }

    /// <summary>
    /// چه کسی انجام داده (UserId یا "System")
    /// </summary>
    public string? PerformedBy { get; set; }
}
