using Lada.Framework.Data.Domains.BaseEntities;
using System.ComponentModel.DataAnnotations;

namespace Lada.Framework.Data.Domains.Rewards
{
    /// <summary>
    /// Audit trail cho mọi thay đổi cấu hình AutoPenaltyConfig.
    /// </summary>
    public class ConfigAuditLog : BaseEntityWithKey<int>
    {
        /// <summary>
        /// Loại cấu hình đã thay đổi (VD: "CutoffTime", "ResetPolicy", "PenaltyLevel")
        /// </summary>
        [MaxLength(100)]
        public string ConfigType { get; set; } = string.Empty;

        /// <summary>
        /// Giá trị cũ (JSON)
        /// </summary>
        public string? OldValue { get; set; }

        /// <summary>
        /// Giá trị mới (JSON)
        /// </summary>
        public string? NewValue { get; set; }

        /// <summary>
        /// Người thay đổi
        /// </summary>
        public int ChangedBy { get; set; }

        /// <summary>
        /// Thời điểm thay đổi
        /// </summary>
        public DateTimeOffset ChangedAt { get; set; }

        /// <summary>
        /// Lý do thay đổi
        /// </summary>
        [MaxLength(500)]
        public string? Reason { get; set; }
    }
}
