namespace CMSMicroservice.Application.CityCQ.Queries.GetAllCitiesByFilter;

public record GetAllCitiesByFilterQuery : IRequest<GetAllCitiesByFilterResponseDto>
{
    /// <summary>
    /// موقعیت صفحه بندی
    /// </summary>
    public PaginationState? PaginationState { get; init; }
    
    /// <summary>
    /// مرتب سازی بر اساس
    /// </summary>
    public string? SortBy { get; init; }
    
    /// <summary>
    /// فیلتر
    /// </summary>
    public GetAllCitiesByFilterFilter? Filter { get; init; }
}

public class GetAllCitiesByFilterFilter
{
    /// <summary>
    /// شناسه
    /// </summary>
    public long? Id { get; set; }
    
    /// <summary>
    /// نام شهر (Contains)
    /// </summary>
    public string? Name { get; set; }
    
    /// <summary>
    /// نام بومی شهر (Contains)
    /// </summary>
    public string? Native { get; set; }
    
    /// <summary>
    /// شناسه استان
    /// </summary>
    public long? StateId { get; set; }
}
