const { Op } = require('sequelize'); const validar = require('../../helper/validar'); const Servicio = require('../../db/tablas/Servicio'); const Usuario = require('../../db/tablas/Usuario'); const Carrera = require('../../db/tablas/Carrera'); const Status = require('../../db/tablas/Status'); const TipoUsuario = require('../../db/tablas/TipoUsuario'); const serviciosAdmin = async (body) => { const pagina = validar.validarId(body.pagina); const where = body.idStatus ? { idStatus: validar.validarId(body.idStatus) } : {}; const nombre = body.nombre ? validar.validarTexto(body.nombre, 'El nombre', 60) : ''; const numeroCuenta = body.numeroCuenta ? validar.validarNumeroCuenta(body.numeroCuenta) : ''; const data = []; return Servicio.findAll({ where, include: [ { model: Usuario, include: { model: TipoUsuario }, where: { usuario: { [Op.like]: `%${numeroCuenta}%` }, nombre: { [Op.like]: `%${nombre}%` }, }, }, { model: Carrera }, { model: Status }, ], order: [['updatedAt', 'DESC']], }).then((res) => { for (let i = pagina * 25 - 25; i < res.length && i < pagina * 25; i++) data.push({ idServicio: res[i].idServicio, fechaInicio: res[i].fechaInicio, fechaFin: res[i].fechaFin, createdAt: res[i].createdAt, Usuario: { idUsuario: res[i].Usuario.idUsuario, usuario: res[i].Usuario.usuario, nombre: res[i].Usuario.nombre, TipoUsuario: res[i].Usuario.TipoUsuario, }, Carrera: res[i].Carrera, Status: res[i].Status, }); return { registros: res.length, faltantes: res.length - data.length - (pagina - 1) * 25, servicios: data, }; }); }; module.exports = serviciosAdmin;