Gestión de socios: CRUD, estados y préstamos activos
Administra socios de la biblioteca: crea, edita, suspende y elimina registros. Controla los estados ACTIVO, SUSPENDIDO y MOROSO con reglas automáticas.
Use this file to discover all available pages before exploring further.
El módulo de socios centraliza la gestión de los miembros de la biblioteca. Desde aquí el personal puede registrar nuevos socios, consultar su historial de préstamos, actualizar sus datos y controlar su estado de membresía. El sistema impone reglas automáticas sobre los estados para garantizar que solo los socios habilitados puedan tomar nuevos materiales en préstamo.
El campo estado define qué operaciones puede realizar un socio. El sistema lo actualiza de forma automática en respuesta a eventos de préstamo y devolución.
Estado
Significado
Puede pedir prestado
ACTIVO
Socio habilitado sin deudas ni sanciones
✅
SUSPENDIDO
Bloqueado manualmente por el personal de la biblioteca
❌
MOROSO
El sistema detectó uno o más préstamos vencidos con más de 30 días de atraso
❌
Cascada de estados: cuando se registra la devolución de un préstamo en mora, el servicio verifica si el socio todavía tiene otros préstamos con estado MORA. Si no quedan préstamos pendientes en mora, el estado del socio vuelve automáticamente a ACTIVO. Esto se ejecuta dentro de una transacción de base de datos para garantizar consistencia.
GET /api/sociosDevuelve una lista paginada de socios. Acepta filtros por estado y búsqueda de texto libre (search) que opera sobre nombre, apellido, DNI y email. Cada socio incluye el conteo total de préstamos (_count.prestamos).
Ver socio
GET /api/socios/:idDevuelve el detalle completo de un socio, incluyendo sus 10 préstamos más recientes con el título del material asociado.
Ver préstamos del socio
GET /api/socios/:id/prestamosDevuelve el historial completo de préstamos del socio, ordenados por fecha descendente. Cada entrada incluye el título y tipo del material.
Crear socio
POST /api/sociosRegistra un nuevo socio. Los campos nombre, apellido y dni son obligatorios. El sistema verifica que el DNI no esté ya registrado y devuelve 409 si hay conflicto.
Editar socio
PUT /api/socios/:idActualiza los datos de un socio existente. Si se envía un dni diferente, el sistema verifica que no esté en uso por otro registro.
Eliminar socio
DELETE /api/socios/:idElimina el registro del socio de forma permanente. El sistema bloquea la operación si el socio tiene préstamos activos.
El endpoint GET /api/socios soporta los siguientes parámetros de consulta:
Parámetro
Tipo
Predeterminado
Descripción
page
integer
1
Número de página a recuperar
limit
integer
20
Cantidad de registros por página
search
string
—
Búsqueda parcial sobre nombre, apellido, dni y email
estado
string
—
Filtra por estado exacto: ACTIVO, SUSPENDIDO o MOROSO
La respuesta incluye un objeto meta con los campos total, page, totalPages y limit para construir la paginación en el cliente.
GET /api/socios?page=2&limit=15&search=garcia&estado=ACTIVOAuthorization: Bearer <token>
No es posible eliminar un socio que tenga préstamos con estado ACTIVO. El sistema devuelve un error 409 Conflict con el mensaje "No se puede eliminar un socio con préstamos activos". Para poder eliminar el registro, primero se deben registrar todas las devoluciones pendientes del socio.
Para la referencia completa del endpoint de socios, consulta la documentación de /api/socios.