using System.Linq.Expressions;

namespace ZB.MOM.WW.CBDD.Core.Query;

internal class QueryModel
{
    /// <summary>
    /// Gets or sets the filter expression.
    /// </summary>
    public LambdaExpression? WhereClause { get; set; }

    /// <summary>
    /// Gets or sets the projection expression.
    /// </summary>
    public LambdaExpression? SelectClause { get; set; }

    /// <summary>
    /// Gets or sets the ordering expression.
    /// </summary>
    public LambdaExpression? OrderByClause { get; set; }

    /// <summary>
    /// Gets or sets the maximum number of results to return.
    /// </summary>
    public int? Take { get; set; }

    /// <summary>
    /// Gets or sets the number of results to skip.
    /// </summary>
    public int? Skip { get; set; }

    /// <summary>
    /// Gets or sets a value indicating whether ordering is descending.
    /// </summary>
    public bool OrderDescending { get; set; }
}
