> ## 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.

# Primitive Filters

Each resource consists of individual fields (e.g., a user has an ID, name, email, etc.). The list of fields available for filtering is defined by a specific resource filter. In turn, this filter uses primitive filters to determine filtering conditions (equality, range, etc.).

## `BooleanFilter`

<ParamField query="isnull" default="null" type="boolean">
  Value is missing (`null`).
</ParamField>

<ParamField query="isnotnull" default="null" type="boolean">
  Any value is present (not `null`).
</ParamField>

<ParamField query="equals" default="null" type="boolean">
  Equals the specified value.
</ParamField>

## `IntegerFilter`

<ParamField query="isnull" default="null" type="boolean">
  Value is missing (`null`).
</ParamField>

<ParamField query="isnotnull" default="null" type="boolean">
  Any value is present (not `null`).
</ParamField>

<ParamField query="equals" default="null" type="integer">
  Equals the specified value.
</ParamField>

<ParamField query="notequals" default="null" type="integer">
  Does not equal the specified value (any value except the one provided).
</ParamField>

<ParamField query="from" default="null" type="integer">
  Greater than or equal to the specified value (lower bound).
</ParamField>

<ParamField query="to" default="null" type="integer">
  Less than or equal to the specified value (upper bound).
</ParamField>

<ParamField query="in" default="null" type="integer[]">
  Matches one of the specified values.
</ParamField>

## `DecimalFilter`

<ParamField query="isnull" default="null" type="boolean">
  Value is missing (`null`).
</ParamField>

<ParamField query="isnotnull" default="null" type="boolean">
  Any value is present (not `null`).
</ParamField>

<ParamField query="equals" default="null" type="decimal">
  Equals the specified value.
</ParamField>

<ParamField query="notequals" default="null" type="decimal">
  Does not equal the specified value (any value except the one provided).
</ParamField>

<ParamField query="from" default="null" type="decimal">
  Greater than or equal to the specified value (lower bound).
</ParamField>

<ParamField query="to" default="null" type="decimal">
  Less than or equal to the specified value (upper bound).
</ParamField>

<ParamField query="in" default="null" type="decimal[]">
  Matches one of the specified values.
</ParamField>

## `StringFilter`

<ParamField query="isnull" default="null" type="boolean">
  Value is missing (`null`).
</ParamField>

<ParamField query="isnotnull" default="null" type="boolean">
  Any value is present (not `null`).
</ParamField>

<ParamField query="equals" default="null" type="string">
  Exactly matches the specified value (case-sensitive).
</ParamField>

<ParamField query="notequals" default="null" type="string">
  Does not match the specified value.
</ParamField>

<ParamField query="contains" default="null" type="string">
  Contains the specified value as a substring.
</ParamField>

<ParamField query="in" default="null" type="string[]">
  Matches one of the specified values.
</ParamField>

## `DateTimeFilter`

<ParamField query="isnull" default="null" type="boolean">
  Value is missing (`null`).
</ParamField>

<ParamField query="isnotnull" default="null" type="boolean">
  Any value is present (not `null`).
</ParamField>

<ParamField query="equals" default="null" type="datetime">
  Equals the specified value.
</ParamField>

<ParamField query="notequals" default="null" type="datetime">
  Does not equal the specified value.
</ParamField>

<ParamField query="from" default="null" type="datetime">
  Greater than or equal to the specified value (lower bound).
</ParamField>

<ParamField query="to" default="null" type="datetime">
  Less than or equal to the specified value (upper bound).
</ParamField>

## `EnumerableFilter`

Used to filter **parent resource collections** based on their associated **child collections**.

### Use Cases

* All categories that have at least one product priced over \$1000 without photos.
* All customers who have at least one order for a product from a specific category.
* All projects that have at least one incomplete task with high priority.

<Note>
  This filter operates on “EXISTS” logic. The result will only include parent resources that have at least one child resource matching the specified criteria.
</Note>

<ParamField query="any" type="ChildFilter">
  At least **one** child resource matches each requirement (but not necessarily all of them at once).
</ParamField>

<ParamField query="any" type="ChildFilter[]">
  At least **one** child resource matches each requirement (must match all requirements with the same index simultaneously).
</ParamField>

<ParamField query="none" type="ChildFilter">
  **No** child resource matches each requirement (but not necessarily all of them at once).
</ParamField>

<ParamField query="none" type="ChildFilter[]">
  **No** child resource matches each requirement (must match all requirements with the same index simultaneously).
</ParamField>
