Saltar al contenido principal

PrimaryLevelFilter

Filtro fluido para búsquedas de Servicios (Niveles Primarios) en Shori.

Permite construir consultas dinámicas utilizando los operadores soportados por la API de Shori tales como EQ, IN, LIKE, BETWEEN, entre otros definidos en FilterOperator.

Se usa con client.caso().primaryLevel().search(filter).

Campos opcionales

  • primaryLevelId — UUID del servicio
  • name — nombre del servicio
  • systemName — nombre de sistema
  • responsibleId — UUID del responsable
  • isActive — estado activo/inactivo
  • secondaryLevelCount — cantidad de procesos asociados
  • groupId — UUID del grupo
  • pageNumber — default 0
  • pageSize — default 20
  • orderBy — default "name"
  • sortDirection — default SortDirection#DESC

Operadores disponibles

FilterOperator.EQ // Igual
FilterOperator.NE // Diferente
FilterOperator.GT // Mayor que
FilterOperator.GE // Mayor o igual
FilterOperator.LT // Menor que
FilterOperator.LE // Menor o igual
FilterOperator.IN // Lista de valores
FilterOperator.NOT_IN // No en la lista
FilterOperator.BETWEEN // Rango
FilterOperator.LIKE // Contiene
FilterOperator.LIKE_AFTER // Empieza con
FilterOperator.LIKE_BEFORE // Termina con
FilterOperator.IS_NULL // Es nulo
FilterOperator.IS_NOT_NULL // No es nulo

Uso básico

PrimaryLevelFilter filter = PrimaryLevelFilter.builder()
.name(FilterOperator.LIKE, "Atención")
.isActive(FilterOperator.EQ, "true")
.build();

PrimaryLevelSearchResponse response =
client.caso().primaryLevel().search(filter);

Uso con operador IN implícito

Cuando no se especifica un operador, el SDK aplica automáticamente IN.

PrimaryLevelFilter filter = PrimaryLevelFilter.builder()
.primaryLevelId("uuid-1", "uuid-2", "uuid-3")
.build();

Paginación y ordenamiento

PrimaryLevelFilter filter = PrimaryLevelFilter.builder()
.name(FilterOperator.LIKE, "Cliente")
.pageNumber(0)
.pageSize(50)
.orderBy("name")
.sortDirection(SortDirection.ASC)
.build();

Campos

CampoTipoRestriccionesDescripción
primaryLevelIdStringOpcionalUUID del servicio
nameStringOpcionalNombre del servicio
systemNameStringOpcionalNombre del sistema
responsibleIdStringOpcionalUUID del responsable
isActiveStringOpcionalIndica si el servicio está activo
secondaryLevelCountStringOpcionalCantidad de procesos
groupIdStringOpcionalUUID del grupo
paginationPaginationRequestOpcionalPaginación

Metodos

builder()

Construye una nueva instancia del filtro.

PrimaryLevelFilter filter = PrimaryLevelFilter.builder()
.name(FilterOperator.LIKE, "Cliente")
.pageNumber(0)
.pageSize(100)
.orderBy("name")
.sortDirection("desc")
.build();

Retorna: nueva instancia del filtro.


primaryLevelId(FilterOperator operator, String... values)

Filtra por UUID del servicio con el operador especificado.

Parametros:

  • operator — operador a utilizar.
  • values — UUID(s) del servicio.

Retorna: la misma instancia del filtro.


primaryLevelId(String... values)

Filtra por UUID del servicio usando el operador IN por defecto.

Parametros:

  • values — UUID(s) del servicio.

Retorna: la misma instancia del filtro.


name(FilterOperator operator, String... values)

Filtra por nombre del servicio con el operador especificado.

Parametros:

  • operator — operador a utilizar.
  • values — valores a filtrar.

Retorna: la misma instancia del filtro.


name(String... values)

Filtra por nombre del servicio usando el operador IN por defecto.

Parametros:

  • values — valores a filtrar.

Retorna: la misma instancia del filtro.


systemName(FilterOperator operator, String... values)

Filtra por nombre de sistema del servicio con el operador especificado.

Parametros:

  • operator — operador a utilizar.
  • values — valores a filtrar.

Retorna: la misma instancia del filtro.


systemName(String... values)

Filtra por nombre de sistema usando el operador IN por defecto.

Parametros:

  • values — valores a filtrar.

Retorna: la misma instancia del filtro.


responsibleId(FilterOperator operator, String... values)

Filtra por responsable asociado al servicio con el operador especificado.

Parametros:

  • operator — operador a utilizar.
  • values — UUID(s) del responsable.

Retorna: la misma instancia del filtro.


responsibleId(String... values)

Filtra por responsable usando el operador IN por defecto.

Parametros:

  • values — UUID(s) del responsable.

Retorna: la misma instancia del filtro.


isActive(FilterOperator operator, String... values)

Filtra por estado activo/inactivo del servicio con el operador especificado.

Parametros:

  • operator — operador a utilizar.
  • values — valores a filtrar ("true" o "false").

Retorna: la misma instancia del filtro.


isActive(String... values)

Filtra por estado activo/inactivo usando el operador IN por defecto.

Parametros:

  • values — valores a filtrar.

Retorna: la misma instancia del filtro.


secondaryLevelCount(FilterOperator operator, String... values)

Filtra por cantidad de procesos asociados con el operador especificado.

Parametros:

  • operator — operador a utilizar.
  • values — valores a filtrar.

Retorna: la misma instancia del filtro.


secondaryLevelCount(String... values)

Filtra por cantidad de procesos usando el operador IN por defecto.

Parametros:

  • values — valores a filtrar.

Retorna: la misma instancia del filtro.


groupId(FilterOperator operator, String... values)

Filtra por UUID del grupo al que pertenece el servicio con el operador especificado.

Parametros:

  • operator — operador a utilizar.
  • values — UUID(s) del grupo.

Retorna: la misma instancia del filtro.


groupId(String... values)

Filtra por UUID del grupo usando el operador IN por defecto.

Parametros:

  • values — UUID(s) del grupo.

Retorna: la misma instancia del filtro.


pageNumber(int pageNumber)

Configura el número de página. Por defecto: 0.

filter.pageNumber(0);

Parametros:

  • pageNumber — número de página basado en cero.

Retorna: la misma instancia del filtro.


pageSize(int pageSize)

Establece el tamaño de página. Por defecto: 20.

filter.pageSize(50);

Parametros:

  • pageSize — cantidad de registros por página

Retorna: la misma instancia del filtro.


orderBy(String orderBy)

Establece el campo por el que se ordenan los resultados. Por defecto: "createdAt".

Parametros:

  • orderBy — nombre del campo de ordenamiento

Retorna: la misma instancia del filtro.


sortDirection(SortDirection sortDirection)

Establece la dirección del ordenamiento. Por defecto: SortDirection#DESC.

Parametros:

  • sortDirectionSortDirection#ASC o SortDirection#DESC

Retorna: la misma instancia del filtro.


build()

Finaliza la construcción del filtro.

PrimaryLevelFilter filter = PrimaryLevelFilter.builder()
.name(FilterOperator.LIKE, "Soporte")
.pageSize(50)
.build();

Retorna: filtro configurado.


applyDefaultInOperators()

Aplica automáticamente el operador IN a los filtros que no especifican un operador explícito.

Este método es invocado internamente por el SDK antes de ejecutar la búsqueda.

Ejemplo:

PrimaryLevelFilter.builder()
.name("Soporte")
.build();

Se transforma internamente en:

name = "in:Soporte"

nextPage()

Avanza el filtro a la siguiente página manteniendo todos los criterios de búsqueda actuales.

filter.nextPage();

Retorna: la misma instancia actualizada con la siguiente página.


copyForNextPage()

Genera una copia del filtro posicionada en la página siguiente.

La instancia original permanece sin modificaciones.

PrimaryLevelFilter next =
currentFilter.copyForNextPage();

Retorna: nueva instancia del filtro apuntando a la siguiente página.