Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/JuanM84/gestor-visitas/llms.txt

Use this file to discover all available pages before exploring further.

El sistema expone una API de configuración basada en pares clave-valor almacenados en la tabla Configuracion. Cualquier usuario autenticado puede leer los parámetros para que el Dashboard muestre valores actualizados; sin embargo, únicamente los usuarios con rol Admin pueden modificarlos. Cada modificación queda registrada automáticamente en el log de auditoría con el identificador del administrador que la realizó.
El diseño de clave-valor permite agregar nuevos parámetros operativos en el futuro sin ningún cambio de esquema en la base de datos. Basta con insertar una nueva fila en la tabla Configuracion con la clave deseada.

Parámetros conocidos

ClaveDescripciónValor por defectoRango válido
capacidad_maximaAforo máximo de personas permitidas en todo el día3001 – 9 999
capacidad_por_turnoAforo máximo de personas por turno (combinación fecha + hora)801 – 9 999
session_timeout_minutesMinutos de inactividad tras los cuales el sistema cierra la sesión del usuario301 – 480
Si un parámetro no tiene fila en la base de datos, el servicio devuelve su valor por defecto. Si la clave es completamente desconocida, valor se devuelve como null.

GET /api/configuracion/:clave

Devuelve el valor actual de un parámetro de configuración identificado por su clave. Autenticación: Authorization: Bearer <token> — cualquier rol.

Parámetros de ruta

clave
string
required
Identificador del parámetro de configuración. Valores reconocidos: capacidad_maxima, capacidad_por_turno, session_timeout_minutes.

Respuesta exitosa 200 OK

clave
string
El identificador del parámetro solicitado. Siempre coincide con el valor enviado en la URL.
valor
string | null
El valor actual del parámetro como cadena de texto. Devuelve null si la clave no existe y no tiene valor por defecto definido.

Ejemplos

# Leer el aforo máximo diario
curl -X GET https://api.example.com/api/configuracion/capacidad_maxima \
  -H "Authorization: Bearer <token>"
{
  "clave": "capacidad_maxima",
  "valor": "300"
}
# Leer la capacidad por turno
curl -X GET https://api.example.com/api/configuracion/capacidad_por_turno \
  -H "Authorization: Bearer <token>"
{
  "clave": "capacidad_por_turno",
  "valor": "80"
}
# Leer el timeout de sesión
curl -X GET https://api.example.com/api/configuracion/session_timeout_minutes \
  -H "Authorization: Bearer <token>"
{
  "clave": "session_timeout_minutes",
  "valor": "30"
}

Respuestas de error

CódigoDescripción
401 UnauthorizedToken ausente o inválido.
500 Internal Server ErrorError interno al consultar la base de datos.

PUT /api/configuracion/:clave

Actualiza el valor de un parámetro de configuración existente. Si la clave aún no tiene fila en la tabla, se crea automáticamente. El cambio toma efecto de manera inmediata, sin necesidad de reiniciar el servidor. Autenticación: Authorization: Bearer <token> — requiere rol Admin.

Parámetros de ruta

clave
string
required
Identificador del parámetro a actualizar. Debe ser una de las claves reconocidas por el sistema para que se apliquen las validaciones de rango.

Cuerpo de la solicitud

valor
string
required
Nuevo valor para el parámetro. Siempre se almacena como texto, independientemente del tipo semántico. Debe cumplir las restricciones de rango de cada clave (ver tabla de parámetros).

Respuesta exitosa 200 OK

mensaje
string
Confirmación de la operación. Siempre es "Configuración guardada".
data
object
Objeto con el estado final del parámetro tal como quedó persistido en la base de datos.

Ejemplos

# Actualizar el aforo máximo diario a 250
curl -X PUT https://api.example.com/api/configuracion/capacidad_maxima \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{ "valor": "250" }'
{
  "mensaje": "Configuración guardada",
  "data": {
    "clave": "capacidad_maxima",
    "valor": "250"
  }
}
# Reducir la capacidad por turno a 60
curl -X PUT https://api.example.com/api/configuracion/capacidad_por_turno \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{ "valor": "60" }'
{
  "mensaje": "Configuración guardada",
  "data": {
    "clave": "capacidad_por_turno",
    "valor": "60"
  }
}
# Reducir el timeout de sesión a 15 minutos
curl -X PUT https://api.example.com/api/configuracion/session_timeout_minutes \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{ "valor": "15" }'
{
  "mensaje": "Configuración guardada",
  "data": {
    "clave": "session_timeout_minutes",
    "valor": "15"
  }
}

Respuestas de error

CódigoDescripción
400 Bad RequestEl campo valor está ausente, vacío, o fuera del rango permitido para esa clave. El cuerpo incluye { "error": "<descripción>" }.
401 UnauthorizedToken ausente o inválido.
403 ForbiddenEl usuario autenticado no tiene rol Admin.
500 Internal Server ErrorError interno al persistir el cambio.
Cada actualización exitosa genera una entrada en el log de auditoría con el formato Actualizó configuración "<Nombre legible>" de "<valor anterior>" a "<nuevo valor>". Consulta el log de auditoría para rastrear el historial completo de cambios de configuración.

Build docs developers (and LLMs) love