diff --git a/Src/Notion.Client/Models/Filters/StatusFilter.cs b/Src/Notion.Client/Models/Filters/StatusFilter.cs new file mode 100644 index 00000000..7ed9b23f --- /dev/null +++ b/Src/Notion.Client/Models/Filters/StatusFilter.cs @@ -0,0 +1,53 @@ +using Newtonsoft.Json; + +namespace Notion.Client +{ + public class StatusFilter : SinglePropertyFilter, IRollupSubPropertyFilter + { + [JsonProperty("status")] + public Condition Status { get; set; } + + public StatusFilter( + string propertyName, + string equal = null, + string doesNotEqual = null, + bool? isEmpty = null, + bool? isNotEmpty = null) + { + Property = propertyName; + Status = new Condition( + equal: equal, + doesNotEqual: doesNotEqual, + isEmpty: isEmpty, + isNotEmpty: isNotEmpty + ); + } + + public class Condition + { + [JsonProperty("equals")] + public string Equal { get; set; } + + [JsonProperty("does_not_equal")] + public string DoesNotEqual { get; set; } + + [JsonProperty("is_empty")] + public bool? IsEmpty { get; set; } + + [JsonProperty("is_not_empty")] + public bool? IsNotEmpty { get; set; } + + public Condition( + string equal = null, + string doesNotEqual = null, + bool? isEmpty = null, + bool? isNotEmpty = null) + { + Equal = equal; + DoesNotEqual = doesNotEqual; + IsEmpty = isEmpty; + IsNotEmpty = isNotEmpty; + } + } + } +}