const validar = require('../../helper/validar'); const dbPath = '../../db/tablas'; const Carrito = require(`${dbPath}/Carrito`); const Equipo = require(`${dbPath}/Equipo`); const Modulo = require(`${dbPath}/Modulo`); const Operador = require(`${dbPath}/Operador`); const Prestamo = require(`${dbPath}/Prestamo`); const Programa = require(`${dbPath}/Programa`); const TipoCarrito = require(`${dbPath}/TipoCarrito`); const Usuario = require(`${dbPath}/Usuario`); const historialUsuario = async (body) => { const pagina = validar.validarNumeroEntero(body.pagina, 'página', false); const idUsuario = validar.validarNumeroEntero( body.idUsuario, 'id usuario', true ); return Prestamo.findAndCountAll({ include: [ { model: Equipo, include: [ { model: Carrito, include: [{ model: TipoCarrito }, { model: Modulo }], attributes: ['idCarrito', 'sobrenombre'], }, { model: Programa }, ], attributes: [ 'idEquipo', 'numeroSerie', 'numeroInventario', 'sobrenombre', ], }, { model: Usuario, where: { idUsuario }, attributes: ['idUsuario', 'usuario', 'nombre'], }, { model: Operador, as: 'OperadorEntrega', attributes: ['idOperador', 'operador'], }, { model: Operador, as: 'OperadorRegreso', attributes: ['idOperador', 'operador'], }, { model: Operador, as: 'OperadorCancelacion', attributes: ['idOperador', 'operador'], }, ], limit: 25, offset: 25 * (pagina - 1), order: [['createdAt', 'DESC']], attributes: [ 'idPrestamo', 'activo', 'horaMaxRecoger', 'horaInicio', 'horaFin', 'horaEntrega', 'canceladoUsuario', 'regresoInmediato', 'createdAt', ], }); }; module.exports = historialUsuario;