namespace CMSMicroservice.Application.ProductsCQ.Commands.UpdateProducts;

public record UpdateProductsCommand : IRequest<Unit>
{
    public long Id { get; init; }
    public string Title { get; init; } = string.Empty;
    public string Description { get; init; } = string.Empty;
    public string ShortInfomation { get; init; } = string.Empty;
    public string FullInformation { get; init; } = string.Empty;
    public long Price { get; init; }
    public int Discount { get; init; }
    public int Rate { get; init; }
    public string? ImagePath { get; init; }
    public string? ThumbnailPath { get; init; }
    public int SaleCount { get; init; }
    public int ViewCount { get; init; }
    public int RemainingCount { get; init; }
    public List<long> CategoryIds { get; init; } = new();
    
    // File upload fields (raw bytes from client)
    public byte[]? ImageFileBytes { get; init; }
    public string? ImageFileMime { get; init; }
    public string? ImageFileName { get; init; }
    public byte[]? ThumbnailFileBytes { get; init; }
    public string? ThumbnailFileMime { get; init; }
    public string? ThumbnailFileName { get; init; }
}
