using System.Collections.Generic;
namespace Vit.Linq.QueryBuilder
{
///
/// This interface is used to define a hierarchical filter for a given collection.
///
public interface IFilterRule
{
///
/// condition - acceptable values are "and" and "or".
///
string condition { get; }
///
/// could be nested, example: b1.name
///
string field { get; }
///
/// Supported value :
///
/// "IsNull", "IsNotNull" ,
/// "=", "!=", ">", "<" , ">=", "<=",
/// "In" , "NotIn" ,
/// "Contains", "NotContains", "StartsWith", "EndsWith" , "IsNullOrEmpty", "IsNotNullOrEmpty"
///
/// //TODO [array] "is empty", "is not empty"
///
string @operator { get; }
///
/// nested filter rules
///
IEnumerable rules { get; }
///
/// value of the filter. Supported value types are "integer", "double", "string", "date", "datetime", and "boolean".
///
object value { get; }
}
}