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