using System.Text.Json.Serialization; namespace Strata.SqlTools.SqlServer.ExpressionFactory.Query; public class Value { public string ColumnAlias { get; } public string Calculation { get; } public IEnumerable CalculationDataColumnIds { get; } public IEnumerable AliasedIds { get; } public IEnumerable FilterGroups { get; } public Value() : this(string.Empty, string.Empty, new int[0], new string[0], new CalculationFilterGroup[0]) { // FilterGroups = new List(); } [JsonConstructor] public Value(string columnAlias, string calculation, IEnumerable calculationDataColumnIds, IEnumerable aliasedIds, IEnumerable filterGroups) { ColumnAlias = columnAlias; Calculation = calculation; CalculationDataColumnIds = calculationDataColumnIds ?? Array.Empty(); AliasedIds = aliasedIds ?? aliasedIds ?? Array.Empty(); FilterGroups = filterGroups?.Where(x => x.IsValid()).ToList() ?? new List(); } }