using System.Linq.Expressions; namespace zero.Api.Models; public class ListQuery { public ListQueryDisplayType DisplayType { get; set; } public string[] Ids { get; set; } = Array.Empty(); public string Search { get; set; } = null; public Expression> SearchSelector { get; set; } = null; public Expression>[] SearchSelectors { get; private set; } = new Expression>[0] { }; public Expression, IQueryable>> AdditionalQuery { get; set; } = null; public string OrderBy { get; set; } = "createdDate"; public ListQueryOrderType OrderType { get; set; } = ListQueryOrderType.String; public bool OrderIsDescending { get; set; } = true; public Func, IQueryable> OrderQuery = null; public int Page { get; set; } = 1; public int PageSize { get; set; } = 30; //public bool IncludeInactive { get; set; } = true; public void SearchFor(params Expression>[] selectors) { SearchSelectors = selectors; } } public class ListQuery : ListQuery where TFilter : IListSpecificQuery { public TFilter Filter { get; set; } }