Cambios de unificacion en ingresos de visitas.

This commit is contained in:
Pablinux
2025-06-08 02:29:21 -05:00
parent ba83c866e6
commit 8afb1d09cb
2 changed files with 379 additions and 148 deletions

View File

@@ -5,7 +5,7 @@ const controladorClientes = require('../controladores/controlador_Clientes');
const controladorMembresias = require('../controladores/controlador_Clientes_Membresias');
const controladorMiembros = require('../controladores/controlador_Clientes_Miembros');
const controladorAreas = require('../controladores/controlador_Areas'); // Controlador para áreas de configuración
const controladorVisitasMiembros = require('../controladores/controlador_Clientes_MiembrosVisitas'); // Controlador para visitas de miembros
const controladorVisitas = require('../controladores/controlador_Clientes_MiembrosVisitas'); // Controlador para visitas de miembros
//indice inical
rutas.get('/clientes', controladorClientes.ver);//ver lista de clientes
@@ -44,57 +44,45 @@ rutas.delete('/api/tipos-membresia/:id', controladorMembresias.eliminarTipoMembr
// --- Rutas RESTful para MIEMBROS (tabla 'clientes_miembros') ---
// Estas rutas apuntarán al nuevo controlador_Miembros
// Obtener todos los miembros
// GET /api/miembros
rutas.get('/api/miembros', controladorMiembros.listarMiembros);
// Obtener un miembro por su ID
// GET /api/miembros/:id_miembro
rutas.get('/api/miembros/:id_miembro', controladorMiembros.obtenerMiembroPorId);
// Crear un nuevo miembro
// POST /api/miembros
// Datos esperados en el cuerpo de la solicitud: matricula, client_id, id_tipo_membresia, fecha_inicio, fecha_fin, etc.
rutas.post('/api/miembros', controladorMiembros.crearMiembro);
// Actualizar un miembro existente por su ID
// PUT /api/miembros/:id_miembro
// Datos esperados en el cuerpo de la solicitud para actualizar: estado, fechas, etc.
rutas.put('/api/miembros/:id_miembro', controladorMiembros.actualizarMiembro);
// Eliminar (lógicamente/cambiar estado a CANCELADO/SUSPENDIDO) un miembro por su ID
// DELETE /api/miembros/:id_miembro
// NOTA: Dada la importancia del historial, es más común cambiar el estado a 'CANCELADO' o 'SUSPENDIDO'
// en lugar de una eliminación física. El controlador debería manejar esto.
rutas.delete('/api/miembros/:id_miembro', controladorMiembros.eliminarMiembro);
// --- Rutas Adicionales Comunes para Miembros (Opcional) ---
// Obtener miembros por client_id (útil para ver todas las membresías de un cliente)
// GET /api/clientes/:client_id/miembros
rutas.get('/api/clientes/:client_id/miembros', controladorMiembros.listarMiembrosPorCliente);
// Obtener miembros por estado (ej. 'ACTIVO', 'VENCIDO')
// GET /api/miembros/estado/:estado
rutas.get('/api/miembros/estado/:estado', controladorMiembros.listarMiembrosPorEstado);
// Obtener miembros por tipo de membresía
// GET /api/tipos-membresia/:id_tipo_membresia/miembros
rutas.get('/api/tipos-membresia/:id_tipo_membresia/miembros', controladorMiembros.listarMiembrosPorTipoMembresia);
// --- Rutas RESTful para VISITAS de Miembros (tabla 'clientes_miembros_visitas') ---
// Estas rutas apuntarán al nuevo controlador_VisitasMiembros
// Registrar una nueva visita de miembro
// POST /api/visitas-miembros
// Datos esperados en el cuerpo: id_miembro, matricula_registrada, nombre_area_acceso, estado_acceso, motivo_denegacion (opcional), registrado_por (opcional), observaciones (opcional)
rutas.post('/api/visitas-miembros', controladorVisitasMiembros.registrarVisita);
// Obtener todas las visitas (puede ser útil para reportes o auditorías, pero cuidado con el volumen)
// GET /api/visitas-miembros
rutas.get('/api/visitas-miembros', controladorVisitasMiembros.listarVisitas);
// Obtener visitas por ID de miembro (para ver el historial de un miembro específico)
// GET /api/miembros/:id_miembro/visitas
rutas.get('/api/miembros/:id_miembro/visitas', controladorVisitasMiembros.listarVisitasPorMiembro);
/// --- Rutas RESTful para VISITAS UNIFICADAS (tabla 'clientes_visitas') ---
// Estas rutas apuntarán al nuevo controlador_ClientesVisitas
// Registrar una nueva visita (para miembro o ocasional)
rutas.post('/api/visitas', controladorVisitas.crearVisita); // Renombrado a 'crearVisita'
// Obtener todas las visitas (con posibilidad de filtros, cuidado con volumen)
rutas.get('/api/visitas', controladorVisitas.listarVisitas);
// Obtener una visita específica por su ID
// GET /api/visitas-miembros/:id_visita
rutas.get('/api/visitas-miembros/:id_visita', controladorVisitasMiembros.obtenerVisitaPorId);
// (Opcional) Obtener visitas por estado de acceso (CONCEDIDO/DENEGADO)
// GET /api/visitas-miembros/estado/:estado_acceso
rutas.get('/api/visitas-miembros/estado/:estado_acceso', controladorVisitasMiembros.listarVisitasPorEstadoAcceso);
// (Opcional) Obtener visitas por área de acceso
// GET /api/visitas-miembros/area/:nombre_area
rutas.get('/api/visitas-miembros/area/:nombre_area', controladorVisitasMiembros.listarVisitasPorArea);
rutas.get('/api/visitas/:id_visita', controladorVisitas.obtenerVisitaPorId);
// Actualizar una visita existente (ej. corregir observaciones, cambiar estado si se permite)
rutas.put('/api/visitas/:id_visita', controladorVisitas.actualizarVisita);
// Eliminar lógicamente una visita (ej. marcar como 'ANULADA' si tuvieras ese estado)
rutas.delete('/api/visitas/:id_visita', controladorVisitas.eliminarVisita); // Implementación para una eliminación lógica
// Rutas de consulta específicas para visitas
rutas.get('/api/visitas/por-cliente/:client_id', controladorVisitas.listarVisitasPorCliente);
rutas.get('/api/visitas/por-miembro/:id_miembro', controladorVisitas.listarVisitasPorMiembro);
rutas.get('/api/visitas/estado/:estado_acceso', controladorVisitas.listarVisitasPorEstadoAcceso);
rutas.get('/api/visitas/area/:nombre_area', controladorVisitas.listarVisitasPorArea);
// Rutas para la administración de Áreas de Acceso
rutas.get('/api/areas', controladorAreas.listarAreas);