Служит для дополнительной фильтрации выборок по основным(список полей определяется для каждой сущности отдельно) и по дополнительным полям, созданным для сущности.
Название | Тип данных | Обязательность | Описание |
---|---|---|---|
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" }