using CMSMicroservice.Application.Common.Models;

namespace CMSMicroservice.Application.ProductsCQ.Queries.GetCustomerProductsByFilter;

public class GetCustomerProductsByFilterQuery : IRequest<GetCustomerProductsByFilterResponseDto>
{
    public PaginationState? PaginationState { get; set; }
    public string? SortBy { get; set; }
    
    // Filters
    public long? Id { get; set; }
    public string? Title { get; set; }
    public string? Description { get; set; }
    public string? ShortInfomation { get; set; }
    public string? FullInformation { get; set; }
    public long? Price { get; set; }
    public int? Discount { get; set; }
    public int? Rate { get; set; }
    public string? ImagePath { get; set; }
    public string? ThumbnailPath { get; set; }
    public int? SaleCount { get; set; }
    public int? ViewCount { get; set; }
    public int? RemainingCount { get; set; }
    /// <summary>
    /// true = فقط موجود (RemainingCount &gt; 0)، false = فقط ناموجود
    /// </summary>
    public bool? InStock { get; set; }
    public bool? IsActive { get; set; }
    public List<long>? CategoryIds { get; set; }
}
