namespace CMSMicroservice.Application.ConfigurationCQ.Commands.SetConfigurationValue;

/// <summary>
/// Command برای تنظیم یا به‌روزرسانی یک Configuration
/// </summary>
public record SetConfigurationValueCommand : IRequest<long>
{
    /// <summary>
    /// محدوده تنظیمات (System, Network, Club, Commission)
    /// </summary>
    public ConfigurationScope Scope { get; init; }

    /// <summary>
    /// کلید یکتا برای تنظیمات
    /// </summary>
    public string Key { get; init; }

    /// <summary>
    /// مقدار تنظیمات (JSON format)
    /// </summary>
    public string Value { get; init; }

    /// <summary>
    /// توضیحات تنظیمات
    /// </summary>
    public string? Description { get; init; }

    /// <summary>
    /// دلیل تغییر (برای History)
    /// </summary>
    public string? ChangeReason { get; init; }
}
