Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/camiloivcode/biblioteca-la-palabra/llms.txt

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

El módulo de reportes proporciona vistas agregadas y de solo lectura sobre la actividad de la biblioteca. Todos los datos se consultan directamente desde la base de datos en tiempo real: préstamos en curso, socios en situación de mora, los materiales más solicitados y el historial completo de operaciones. No requiere configuración adicional; basta con autenticarse y consumir los endpoints.

Reportes disponibles

Dashboard

GET /api/reportes/dashboardResumen ejecutivo del estado actual de la biblioteca. Devuelve totales de socios (activos y morosos), materiales (disponibles y prestados) y préstamos (activos, en mora, vencidos, devueltos, operaciones del día).

Préstamos Activos

GET /api/reportes/prestamos-activosLista todos los préstamos con estado ACTIVO o MORA, ordenados por fecha de devolución ascendente. Incluye nombre y DNI del socio, y título del material.

Socios Morosos

GET /api/reportes/socios-morososDevuelve los socios cuyo estado es MOROSO, junto con el detalle de los préstamos en mora que tienen pendientes y el conteo total de préstamos del socio.

Materiales Populares

GET /api/reportes/materiales-popularesTop 10 de materiales con mayor cantidad de préstamos históricos, ordenados de mayor a menor. Útil para decisiones de adquisición y política de préstamo.

Historial

GET /api/reportes/historialHistorial completo de préstamos (hasta 100 registros, ordenados por fecha descendente). Admite filtros opcionales por query string: ?estado=, ?desde= y ?hasta= (fechas en formato ISO 8601).

Filtros del historial

El endpoint de historial acepta los siguientes parámetros opcionales por query string:
ParámetroTipoDescripción
estadoStringFiltra por estado del préstamo: ACTIVO, MORA, DEVUELTO
desdeStringFecha de inicio del rango (ISO 8601, ej. 2025-01-01)
hastaStringFecha de fin del rango (ISO 8601, ej. 2025-06-30)
# Ejemplo: historial de préstamos devueltos en el primer semestre de 2025
curl -X GET "https://tu-api/api/reportes/historial?estado=DEVUELTO&desde=2025-01-01&hasta=2025-06-30" \
  -H "Authorization: Bearer <token>"

Acceso

Todos los endpoints de reportes requieren autenticación mediante Bearer token en el encabezado Authorization. No existe restricción de rol: tanto los usuarios con rol ADMIN como los de rol BIBLIOTECARIO pueden consultar cualquier reporte.
curl -X GET https://tu-api/api/reportes/dashboard \
  -H "Authorization: Bearer <token>"

Ejemplo de respuesta del dashboard

El endpoint GET /api/reportes/dashboard devuelve un objeto estructurado con tres agrupaciones: socios, materiales y prestamos.
{
  "success": true,
  "message": "Dashboard obtenido",
  "data": {
    "socios": {
      "total": 3,
      "activos": 3,
      "morosos": 0
    },
    "materiales": {
      "total": 2,
      "disponibles": 1,
      "prestados": 1
    },
    "prestamos": {
      "activos": 1,
      "mora": 0,
      "vencidos": 0,
      "devueltos": 5,
      "hoy": 1,
      "devoluccionesHoy": 0
    }
  }
}
Antes de consultar el reporte de socios morosos, se recomienda ejecutar primero PATCH /api/prestamos/actualizar-mora. Este endpoint recorre los préstamos activos con fecha de devolución vencida, los marca como MORA y actualiza el estado de los socios correspondientes a MOROSO. Sin este paso previo, el reporte podría no reflejar la situación más reciente.

Ejemplo de respuesta: préstamos activos

{
  "success": true,
  "data": [
    {
      "id": 12,
      "estado": "ACTIVO",
      "fechaPrestamo": "2025-06-01T09:00:00.000Z",
      "fechaDevolucion": "2025-07-01T09:00:00.000Z",
      "socio": {
        "nombre": "Ana",
        "apellido": "González",
        "dni": "12345678"
      },
      "material": {
        "titulo": "Cien años de soledad",
        "tipo": "LIBRO"
      }
    }
  ]
}

Referencia de API

Para la referencia completa de parámetros, esquemas de respuesta y códigos de error consulta:

Build docs developers (and LLMs) love