Служит для дополнительной фильтрации выборок по основным(список полей определяется для каждой сущности отдельно) и по дополнительным полям, созданным для сущности.
| Название | Тип данных | Обязательность | Описание |
|---|---|---|---|
| field | string | Обязательное | Имя поля сущности (например first_name, region_id, date_of_birth). |
| operator | Enum | Обязательное | Оператор фильтрации. |
| value | string | Обязательное | Значение фильтра в текстовом представлении. Для Exists/NotExists не обязательно. |
Допустимые значения поля Value
| Название | Описание |
|---|---|
| Equal | Равенство (=). |
| NotEqual | Не равно (!=). |
| Greater | Больше (>). |
| Less | Меньше (<). |
| GreaterOrEqual | Больше или равно (>=). |
| LessOrEqual | Меньше или равно (<=). |
| Like | Частичное совпадение (только для строковых полей). |
| Exists | Проверка наличия значения. |
| NotExists | Проверка отсутствия значения. |
Для операторов Exists/NotExists поле Value не требуется и игнорируется.
Правила валидации и применимости операторов по типам полей
value должен соответствовать типу данных поля (data_type):
int).decimal)."true" или "false" (регистронезависимо).Ограничения по операторам:
data_type = "string". Для других типов возвращается ошибка валидации.Если оператор требует Value (например Equal, Greater, LessOrEqual и т. п.), а Value отсутствует или не может быть корректно сконвертирован в соответствующий тип — возвращается ошибка валидации.
Для пользовательских дополнительных полей (is_custom = true) дополнительно проверяется, что поле существует в метаданных и принадлежит указанной сущности.
Пример JSON объекта фильтра
{ "field": "region_id", "operator": "Equal", "value": "5" }
Пример JSON применения фильтра для получения данных
{
"filters": [
{ "field": "field_telegram_id", "operator": "Equal", "value": "123456789" }
]
}