using MediatR;

namespace CMSMicroservice.Application.ProductsCQ.Commands.UpdateProductBulk;

/// <summary>
/// دستور به‌روزرسانی گروهی محصولات
/// Admin می‌تواند چندین محصول را همزمان ویرایش کند
/// </summary>
public class UpdateProductBulkCommand : IRequest<UpdateProductBulkResponseDto>
{
    /// <summary>
    /// لیست شناسه محصولات برای به‌روزرسانی
    /// </summary>
    public List<long> ProductIds { get; set; } = new();

    /// <summary>
    /// قیمت جدید (اختیاری - اگر null باشد تغییر نمی‌کند)
    /// </summary>
    public long? NewPrice { get; set; }

    /// <summary>
    /// درصد افزایش/کاهش قیمت (اختیاری)
    /// مثلاً: 10 = افزایش 10%، -15 = کاهش 15%
    /// </summary>
    public decimal? PriceChangePercent { get; set; }

    /// <summary>
    /// موجودی (اختیاری)
    /// </summary>
    public int? Stock { get; set; }

    /// <summary>
    /// افزودن مقدار به موجودی (اختیاری)
    /// </summary>
    public int? StockIncrement { get; set; }
}
