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.

Los días inhábiles son fechas en las que no se puede registrar ninguna visita en el sistema. Se utilizan para representar feriados nacionales, cierres por mantenimiento, días no laborables o cualquier otra situación que impida la operación normal del túnel. El servicio valida que no se bloqueen fechas pasadas y que cada fecha sea única en el sistema. Todos los cambios sobre la tabla DiaInhabil quedan registrados automáticamente en el log de auditoría, indicando qué administrador bloqueó o desbloqueó cada fecha.

GET /api/dias-inhabiles

Devuelve la lista completa de días inhábiles registrados, ordenados cronológicamente de forma ascendente. Autenticación: Authorization: Bearer <token> — cualquier rol.

Respuesta exitosa 200 OK

Un arreglo de objetos. Puede ser un arreglo vacío [] si no hay días inhábiles registrados.
id
integer
Identificador único del registro de día inhábil.
fecha
string
Fecha bloqueada en formato YYYY-MM-DD.
descripcion
string
Texto descriptivo que explica el motivo del bloqueo (por ejemplo, "Feriado Nacional" o "Mantenimiento programado").

Ejemplo

curl -X GET https://api.example.com/api/dias-inhabiles \
  -H "Authorization: Bearer <token>"
[
  {
    "id": 1,
    "fecha": "2025-05-25",
    "descripcion": "Feriado Nacional — Día de la Revolución de Mayo"
  },
  {
    "id": 2,
    "fecha": "2025-07-09",
    "descripcion": "Feriado Nacional — Día de la Independencia"
  },
  {
    "id": 3,
    "fecha": "2025-08-15",
    "descripcion": "Mantenimiento programado de infraestructura"
  }
]

Respuestas de error

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

POST /api/dias-inhabiles

Registra una nueva fecha como día inhábil, impidiendo que se creen visitas para ese día desde ese momento. Autenticación: Authorization: Bearer <token> — requiere rol Admin.
No es posible bloquear una fecha que ya haya transcurrido. El sistema compara la fecha enviada con el día actual (en hora local del servidor) y rechaza la solicitud con 400 Bad Request si la fecha es anterior a hoy.

Cuerpo de la solicitud

fecha
string
required
Fecha a bloquear en formato YYYY-MM-DD. Debe ser igual o posterior a la fecha actual. No puede ya estar registrada como día inhábil.
descripcion
string
required
Descripción del motivo del bloqueo. No puede estar vacía.

Respuesta exitosa 201 Created

El objeto del día inhábil recién creado, tal como quedó persistido en la base de datos.
id
integer
Identificador único asignado al nuevo registro.
fecha
string
Fecha bloqueada en formato YYYY-MM-DD, confirmando el valor almacenado.
descripcion
string
Descripción del motivo del bloqueo tal como fue guardada.

Ejemplo

curl -X POST https://api.example.com/api/dias-inhabiles \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{
    "fecha": "2025-10-12",
    "descripcion": "Feriado Nacional — Día del Respeto a la Diversidad Cultural"
  }'
{
  "id": 4,
  "fecha": "2025-10-12",
  "descripcion": "Feriado Nacional — Día del Respeto a la Diversidad Cultural"
}

Respuestas de error

CódigoDescripción
400 Bad Requestfecha o descripcion ausentes en el cuerpo. Responde con { "error": "La fecha y descripción son obligatorias" }.
400 Bad RequestLa fecha enviada es anterior a la fecha actual. Responde con { "error": "No se puede bloquear una fecha pasada" }.
401 UnauthorizedToken ausente o inválido.
403 ForbiddenEl usuario autenticado no tiene rol Admin.
409 ConflictLa fecha ya está registrada como día inhábil. Responde con { "error": "Esta fecha ya está registrada como día inhábil" }.

DELETE /api/dias-inhabiles/:id

Elimina un día inhábil del sistema. Una vez eliminado, esa fecha vuelve a estar disponible para el registro de visitas. Autenticación: Authorization: Bearer <token> — requiere rol Admin.
Eliminar un día inhábil reactiva inmediatamente la posibilidad de registrar visitas en esa fecha. Si existen visitas ya programadas para días que fueron bloqueados con posterioridad, el sistema no las altera; sólo deja de bloquear nuevas reservas.

Parámetros de ruta

id
integer
required
Identificador numérico del día inhábil a eliminar. Se obtiene del listado devuelto por GET /api/dias-inhabiles.

Respuesta exitosa 204 No Content

Sin cuerpo de respuesta. La ausencia de contenido confirma que el día inhábil fue eliminado correctamente.

Ejemplo

# Eliminar el día inhábil con id 4
curl -X DELETE https://api.example.com/api/dias-inhabiles/4 \
  -H "Authorization: Bearer <token>"
HTTP/1.1 204 No Content

Respuestas de error

CódigoDescripción
401 UnauthorizedToken ausente o inválido.
403 ForbiddenEl usuario autenticado no tiene rol Admin.
500 Internal Server ErrorEl registro no existe o se produjo un error al eliminarlo.
Tanto la creación como la eliminación de días inhábiles generan entradas en el log de auditoría con el formato Bloqueó el día DD/MM/YYYY ("descripción") o Desbloqueó el día DD/MM/YYYY ("descripción"), lo que facilita rastrear quién y cuándo realizó cada cambio.

Build docs developers (and LLMs) love