> ## Documentation Index
> Fetch the complete documentation index at: https://developer.tra.cy/llms.txt
> Use this file to discover all available pages before exploring further.

# Фільтри примітивів

Кожен ресурс складається з окремих полів (наприклад, користувач має ідентифікатор, ім’я, електронну пошту тощо). Перелік полів, за якими можна здійснювати фільтрацію, визначається конкретним фільтром ресурсу. Своєю чергою, цей фільтр використовує фільтри примітивів для визначення умов фільтрації (рівність, діапазон тощо).

## `BooleanFilter`

<ParamField query="isnull" default="null" type="boolean">
  Не містить значення (`null`).
</ParamField>

<ParamField query="isnotnull" default="null" type="boolean">
  Містить будь-яке значення (не `null`).
</ParamField>

<ParamField query="equals" default="null" type="boolean">
  Дорівнює вказаному значенню.
</ParamField>

## `IntegerFilter`

<ParamField query="isnull" default="null" type="boolean">
  Не містить значення (`null`).
</ParamField>

<ParamField query="isnotnull" default="null" type="boolean">
  Містить будь-яке значення (не `null`).
</ParamField>

<ParamField query="equals" default="null" type="integer">
  Дорівнює вказаному значенню.
</ParamField>

<ParamField query="notequals" default="null" type="integer">
  Не дорівнює вказаному значенню (будь-яке значення окрім вказаного).
</ParamField>

<ParamField query="from" default="null" type="integer">
  Більше або дорівнює вказаному значенню (нижня межа).
</ParamField>

<ParamField query="to" default="null" type="integer">
  Менше або дорівнює вказаному значенню (верхня межа).
</ParamField>

<ParamField query="in" default="null" type="integer[]">
  Дорівнює одному з указаних значень.
</ParamField>

## `DecimalFilter`

<ParamField query="isnull" default="null" type="boolean">
  Не містить значення (`null`).
</ParamField>

<ParamField query="isnotnull" default="null" type="boolean">
  Містить будь-яке значення (не `null`).
</ParamField>

<ParamField query="equals" default="null" type="decimal">
  Дорівнює вказаному значенню.
</ParamField>

<ParamField query="notequals" default="null" type="decimal">
  Не дорівнює вказаному значенню (будь-яке значення окрім вказаного).
</ParamField>

<ParamField query="from" default="null" type="decimal">
  Більше або дорівнює вказаному значенню (нижня межа).
</ParamField>

<ParamField query="to" default="null" type="decimal">
  Менше або дорівнює вказаному значенню (верхня межа).
</ParamField>

<ParamField query="in" default="null" type="decimal[]">
  Дорівнює одному з указаних значень.
</ParamField>

## `StringFilter`

<ParamField query="isnull" default="null" type="boolean">
  Не містить значення (`null`).
</ParamField>

<ParamField query="isnotnull" default="null" type="boolean">
  Містить будь-яке значення (не `null`).
</ParamField>

<ParamField query="equals" default="null" type="string">
  Дорівнює вказаному значенню.
</ParamField>

<ParamField query="notequals" default="null" type="string">
  Не дорівнює вказаному значенню (будь-яке значення окрім вказаного).
</ParamField>

<ParamField query="contains" default="null" type="string">
  Включає вказане значення (як підрядок).
</ParamField>

<ParamField query="in" default="null" type="string[]">
  Дорівнює одному з указаних значень.
</ParamField>

## `DateTimeFilter`

<ParamField query="isnull" default="null" type="boolean">
  Не містить значення (`null`).
</ParamField>

<ParamField query="isnotnull" default="null" type="boolean">
  Містить будь-яке значення (не `null`).
</ParamField>

<ParamField query="equals" default="null" type="datetime">
  Дорівнює вказаному значенню.
</ParamField>

<ParamField query="notequals" default="null" type="datetime">
  Не дорівнює вказаному значенню (будь-яке значення окрім вказаного).
</ParamField>

<ParamField query="from" default="null" type="datetime">
  Більше або дорівнює вказаному значенню (нижня межа).
</ParamField>

<ParamField query="to" default="null" type="datetime">
  Менше або дорівнює вказаному значенню (верхня межа).
</ParamField>

## `EnumerableFilter`

Використовується для фільтрації **батьківських колекцій ресурсів** за пов’язаними **дочірніми колекціями**.

### Сценарії використання

* Усі категорії, у яких є хоча б один товар з ціною понад 1000 грн і без фотографій.
* Усі клієнти, які мають хоча б одне замовлення товару з певної категорії.
* Усі проєкти, у яких є хоча б одне незавершене завдання з високим пріоритетом.

<Note>Фільтр працює за логікою «ІСНУЄ» (EXISTS). Результат міститиме лише ті батьківські ресурси, які мають хоча б один дочірній ресурс, що відповідає вказаним умовам.</Note>

<ParamField query="any" type="ChildFilter">
  Існує **хоча б один** дочірній ресурс, що відповідає кожній з вимог (але необов’язково всім одразу).
</ParamField>

<ParamField query="any" type="ChildFilter[]">
  Існує **хоча б один** дочірній ресурс, що відповідає кожній з вимог (обов’язково всім з однаковим індексом одразу).
</ParamField>

<ParamField query="none" type="ChildFilter">
  Не існує **жодного** дочірнього ресурсу, що відповідає кожній з вимог (але необов’язково всім одразу).
</ParamField>

<ParamField query="none" type="ChildFilter[]">
  Не існує **жодного** дочірнього ресурсу, що відповідає кожній з вимог (обов’язково всім з однаковим індексом одразу).
</ParamField>
