Day slots

View as Markdown
# Company OVAC Day Slots (`query`) Esta operación permite obtener el desglose detallado de los tramos horarios (`slots`) disponibles para una fecha específica. El método cuenta con una regla de filtrado dinámico del pasado: si se consulta el día en curso, el backend omitirá automáticamente los intervalos anteriores y solo devolverá aquellos cuya hora sea posterior a la hora actual de la solicitud. ### Autenticación > **Tipo:** API Key** Header:** `x-jwt-token` **Ubicación:** Header HTTP_ Ejemplo:_ `x-jwt-token: eyJhbGciOiJIUzI1NiIsInR5cCI6...` ## Referencia de la API ### Parámetros de Entrada (Variables) | Parámetro | Descripción | Requerido | Tipo | | --- | --- | --- | --- | | companyId | Identificador único de la entidad en OVAC donde se busca la disponibilidad. | SI | Integer | | statuteId | Identificador interno en OVAC asociado al trámite específico. | NO | Integer | | date | Fecha de consulta en formato UTC bajo el estándar ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ). | SI | String | | reservedMode | `true` -> Muestra/aísla los tramos reservados por profesionales. <br>`false` -> Muestra el horario de atención al público habitual (Valor por defecto). | NO | Boolean | ### Campos de Respuesta (Payload) La consulta devuelve un array directo de objetos con todos los tramos horarios calculados bajo el campo raíz `companyOVACDaySlots`: | Parámetro | Descripción | Tipo | | --- | --- | --- | | companyOVACDaySlots | Array con la colección de todos los slots horarios calculados para el día. | Array | | companyOVACDaySlots.**length** | Duración de cada intervalo o hueco de cita expresado en minutos. | Integer | | companyOVACDaySlots.**utcHour** | Hora de inicio del slot en formato UTC decimal (ej. 6.0 = 06:00, 6.5 = 06:30, 6.25 = 06:15). | Float | | companyOVACDaySlots.**date** | Fecha y hora específica de inicio del slot en formato ISO 8601 UTC. | String | | companyOVACDaySlots.**disabled** | Estado de bloqueo del slot. true: Deshabilitado (no se puede reservar); false: Habilitado. | Boolean | | companyOVACDaySlots.**availability** | Número de huecos netos que quedan libres actualmente en este tramo para agendar. | Integer | | companyOVACDaySlots.**assignedUsers** | Array con los identificadores numéricos de los agentes disponibles en este tramo. En alta concurrencia. | Array | | companyOVACDaySlots.**totalAvailability** | Capacidad máxima o concurrencia total de citas simultáneas configurada para el slot. | Integer | 💡 **Nota Aclaratoria: Gestión de Agentes según el Tipo de Concurrencia** Dependiendo de cómo esté parametrizada la agenda de la entidad o trámite en el backend, la API responderá con lógicas distintas para determinar la ocupación: - **Baja Concurrencia (****`assignedUsers`****):** No se realiza una asignación dinámica en tiempo real. El array `assignedUsers` expone los IDs de los usuarios/agentes que **ya se encuentran ocupados** con una cita en esa franja. Sirve para descartar de forma preventiva a dichos profesionales. - **Alta Concurrencia (****`users`****):** Se computa la disponibilidad activa por agente en tiempo real. El método puede alternar o exponer un array de usuarios **completamente disponibles**. Este array se ordena automáticamente por carga de trabajo (desde el agente con menos citas hasta el que tiene más) para equilibrar el reparto. ## Ejemplos de Código y Peticiones ### 1\. Consulta GraphQL ``` graphql query CompanyOVACDaySlots ( $companyId: ID!, $statuteId: ID, $date: String!, $reservedMode: Boolean ){ companyOVACDaySlots( companyId: $companyId, statuteId: $statuteId, date: $date, reservedMode: $reservedMode ) } ``` ### 2\. Variables de la Petición (JSON Payload) ``` json { "companyId": "2191", "statuteId": "", "date": "2026-05-19T00:00:00.000Z", "reservedMode": false } ``` ### 3\. Ejemplo de comando cURL ``` bash curl --location "https://api.ovac.pre.councilbox.com/graphql" \ --header "Content-Type: application/json" \ --header "x-jwt-token: {{token}}" \ --data '{"query":"query companyOVACDaySlots ($companyId: ID!, $statuteId: ID, $date: String!, $reservedMode: Boolean){ companyOVACDaySlots(companyId: $companyId, statuteId: $statuteId, date: $date, reservedMode: $reservedMode) }","variables":{"companyId":"2191","statuteId":"","date":"2026-05-19T00:00:00.000Z","reservedMode":false}}' ``` ### 4\. Respuesta Esperada (200 OK) ``` json { "data": { "companyOVACDaySlots": [ { "length": 30, "utcHour": 14.5, "date": "2026-05-19T14:30:00.000Z", "disabled": false, "availability": 1, "assignedUsers": [], "totalAvailability": 1 }, { "length": 30, "utcHour": 15.0, "date": "2026-05-19T15:00:00.000Z", "disabled": true, "availability": 0, "assignedUsers": [], "totalAvailability": 1 }, { "length": 30, "utcHour": 15.5, "date": "2026-05-19T15:30:00.000Z", "disabled": true, "availability": 0, "assignedUsers": [ 3477 ], "totalAvailability": 1 }, { "length": 30, "utcHour": 16.0, "date": "2026-05-19T16:00:00.000Z", "disabled": false, "availability": 1, "assignedUsers": [], "totalAvailability": 1 } ] } } ``` > **Nota OpenAPI/Fern:** esta operación GraphQL se documenta como `/graphql/companyovacdayslots` para que Fern pueda mostrarla como operación independiente. La ruta técnica real de ejecución es `POST /graphql`.

Authentication

x-jwt-tokenstring
JWT token obtained from Login.

Request

This endpoint expects an object.
querystringRequired
GraphQL operation
variablesobjectOptional
GraphQL variables

Response

Successful response. GraphQL business errors may be returned inside the JSON errors field while transport status remains HTTP 200.