using System.Text.Json.Serialization; namespace Strata.SqlTools.Query; public class FilterGroup { // Hereditary logical operation applied to all Filters public LogicalOperator LogicalOperator { get; set; } public IEnumerable Filters { get; } public FilterGroup() { LogicalOperator = LogicalOperator.And; Filters = new List(); } [JsonConstructor] public FilterGroup(IEnumerable filters, LogicalOperator logicalOperator) { Filters = filters.Where(x => x.IsValid()).ToList(); LogicalOperator = logicalOperator; } public bool IsValid() { return Filters != null && Filters.Any(); } }