namespace CMSMicroservice.Application.AppVersionCQ.Commands.UpdateAppVersion;

/// <summary>
/// Command برای آپدیت یا ایجاد نسخه جدید اپلیکیشن
/// </summary>
public record UpdateAppVersionCommand : IRequest<Unit>
{
    /// <summary>
    /// نام اپلیکیشن (FrontOffice, BackOffice, MobileApp)
    /// </summary>
    public string AppName { get; init; } = string.Empty;

    /// <summary>
    /// شماره نسخه جدید (مثلاً 1.2.3)
    /// </summary>
    public string CurrentVersion { get; init; } = string.Empty;

    /// <summary>
    /// حداقل نسخه مورد نیاز
    /// </summary>
    public string? MinRequiredVersion { get; init; }

    /// <summary>
    /// آیا کش کامل باید پاک بشه؟
    /// </summary>
    public bool RequiresFullCacheClear { get; init; }

    /// <summary>
    /// پیام آپدیت
    /// </summary>
    public string? UpdateMessage { get; init; }

    /// <summary>
    /// توضیحات تغییرات این نسخه
    /// </summary>
    public string? ReleaseNotes { get; init; }

    /// <summary>
    /// دلیل آپدیت (برای لاگ)
    /// </summary>
    public string? UpdateReason { get; init; }
}
