Reten Docs
Filtros de eventos

Listar filtros de eventos

Lista paginada dos filtros de eventos do tenant, com busca por nome — apenas resumo, sem a árvore de definição.

GET /api/event-criterias

Retorna uma lista paginada dos filtros de eventos do tenant, com uma busca opcional por nome. Cada elemento é um resumo: o recurso base mais a contagem de condições — não inclui a árvore de definição.

Auth: Obrigatória — permissão event-criteria:view

Este endpoint não retorna queryBlocks, apenas conditionCount. Para obter a definição completa de um filtro use GET /:id.

Parâmetros de consulta

ParâmetroTipoPadrãoDescrição
pagenumber1Número da página (inteiro, mínimo 1).
per_pagenumber25Itens por página (inteiro, mínimo 1, máximo 100).
searchstring-Filtra por name (correspondência parcial, sem diferenciar maiúsculas/minúsculas). Não busca em description.

A ordem é fixa: decrescente por data de criação (createdAt), os mais recentes primeiro.

Exemplo

curl "https://api.reten.ai/api/event-criterias?search=factura&per_page=25" \
  -H "Authorization: Bearer <token>" \
  -H "x-tenant-id: <tenant-id>" \
  -H "x-project-id: <project-id>"
import axios from 'axios';

const response = await axios.get(
  'https://api.reten.ai/api/event-criterias',
  {
    headers: { Authorization: 'Bearer <token>', 'x-tenant-id': '<tenant-id>', 'x-project-id': '<project-id>' },
    params: { search: 'factura', per_page: 25 },
  },
);
const { data, pagination } = response.data;

Resposta 200 OK

Envolve os resultados em PaginatedResponseDto<T>. Cada elemento de data usa camelCase; os campos de pagination usam snake_case.

{
  "data": [
    {
      "id": "6d2a9c41-7e35-48b0-b1c9-0f8e7d6c5b4a",
      "projectId": "3f6c2b1a-8d4e-4f7a-9b2c-5e1d0a7f6c34",
      "name": "Proyecto Food Service",
      "description": "Ventas facturadas con al menos una línea de categoría Food Service u HORECA",
      "isActive": true,
      "ownerId": "7c9e6679-7425-40de-944b-e07fc1f90ae7",
      "updatedBy": "7c9e6679-7425-40de-944b-e07fc1f90ae7",
      "createdAt": "2026-07-15T14:32:07.481Z",
      "updatedAt": "2026-07-15T14:32:07.481Z",
      "conditionCount": 2
    },
    {
      "id": "9f3a1c22-4b7e-4c31-9a8d-2f5e6b7c8d90",
      "projectId": "3f6c2b1a-8d4e-4f7a-9b2c-5e1d0a7f6c34",
      "name": "Venta oficial — solo facturada",
      "description": null,
      "isActive": true,
      "ownerId": "7c9e6679-7425-40de-944b-e07fc1f90ae7",
      "updatedBy": "7c9e6679-7425-40de-944b-e07fc1f90ae7",
      "createdAt": "2026-07-10T09:12:44.005Z",
      "updatedAt": "2026-07-10T09:12:44.005Z",
      "conditionCount": 1
    }
  ],
  "pagination": {
    "page": 1,
    "per_page": 25,
    "total": 2,
    "total_pages": 1,
    "has_next": false,
    "has_previous": false
  }
}

Campos do elemento

CampoTipoDescrição
idstring (UUID)Identificador do filtro.
projectIdstring (UUID)Projeto ao qual o filtro pertence.
namestringNome do filtro.
descriptionstring | nullDescrição; null se não houver.
isActivebooleanSempre true: nenhum endpoint o modifica.
ownerIdstring (UUID)Usuário criador.
updatedBystring (UUID)Último usuário que o editou.
createdAtstring (ISO 8601)Data de criação.
updatedAtstring (ISO 8601)Data da última atualização.
conditionCountnumberQuantidade de condições do filtro (ver abaixo).

O que conditionCount conta

É a soma das folhas do where de todos os blocos de consulta: cada folha conta 1, não importa de que tipo seja.

  • Uma folha de coluna (predicate) conta 1.
  • Uma folha de registro (recordPredicate) conta 1, mesmo que seu subWhere tenha vários sub-filtros: é uma condição, não a soma de suas partes.
  • Uma folha de tabela relacionada (semiJoinPredicate) conta 1, pelo mesmo motivo.
  • Os grupos AND/OR não contam: são percorridos para chegar às folhas.

Um filtro com status = 'Facturada' e um filtro de registro sobre attributes com dois sub-filtros tem conditionCount: 2.

conditionCount mede a árvore de definição, que é o que vê quem a constrói. Não mede o tamanho de nenhuma serialização do filtro.

Campos de paginação

CampoTipoDescrição
pagenumberPágina atual.
per_pagenumberItens por página.
totalnumberContagem total de filtros que correspondem à busca.
total_pagesnumberceil(total / per_page).
has_nextbooleantrue se houver uma próxima página.
has_previousbooleantrue se houver uma página anterior.

Respostas de erro

StatusDescrição
400Parâmetro inválido (per_page maior que 100, page menor que 1, propriedade desconhecida).
401Falta ou é inválido o Authorization: Bearer.
403O usuário não tem a permissão event-criteria:view, ou o x-tenant-id não está autorizado.