require('../config/config'); const colors = require('colors'); const { min } = require('./tablas/Carrera'); const Carrera = require('./tablas/Carrera'); const CarreraDiaHora = require('./tablas/CarreraDiaHora'); const Dia = require('./tablas/Dia'); const DiaHora = require('./tablas/DiaHora'); const Grupo = require('./tablas/Grupo'); const GrupoDiaHora = require('./tablas/GrupoDiaHora'); const Hora = require('./tablas/Hora'); const PrimerSemestre = require('./tablas/PrimerSemestre'); const TercerSemestre = require('./tablas/TercerSemestre'); const drop = async () => { console.log('\nPaso 1) Desinstalando la db.'.bold.blue); await TercerSemestre.drop(); console.log('La tabla TercerSemestre se desinstalo correctamente.'.magenta); await PrimerSemestre.drop(); console.log('La tabla PrimerSemestre se desinstalo correctamente.'.magenta); await GrupoDiaHora.drop(); console.log('La tabla GrupoDiaHora se desinstalo correctamente.'.magenta); await CarreraDiaHora.drop(); console.log('La tabla CarreraDiaHora se desinstalo correctamente.'.magenta); await DiaHora.drop(); console.log('La tabla DiaHora se desinstalo correctamente.'.magenta); await Grupo.drop(); console.log('La tabla Grupo se desinstalo correctamente.'.magenta); await Dia.drop(); console.log('La tabla Dia se desinstalo correctamente.'.magenta); await Hora.drop(); console.log('La tabla Hora se desinstalo correctamente.'.magenta); await Carrera.drop(); console.log('La tabla Carrera se desinstalo correctamente.'.magenta); }; const sync = async () => { console.log('\nPaso 2) Instalando la db.'.bold.blue); await Carrera.sync(); console.log('La tabla Carrera se instalo correctamente.'.magenta); await Hora.sync(); console.log('La tabla Hora se instalo correctamente.'.magenta); await Dia.sync(); console.log('La tabla Dia se instalo correctamente.'.magenta); await Grupo.sync(); console.log('La tabla Grupo se instalo correctamente.'.magenta); await DiaHora.sync(); console.log('La tabla DiaHora se instalo correctamente.'.magenta); await CarreraDiaHora.sync(); console.log('La tabla CarreraDiaHora se instalo correctamente.'.magenta); await GrupoDiaHora.sync(); console.log('La tabla GrupoDiaHora se instalo correctamente.'.magenta); await PrimerSemestre.sync(); console.log('La tabla PrimerSemestre se instalo correctamente.'.magenta); await TercerSemestre.sync(); console.log('La tabla TercerSemestre se instalo correctamente.'.magenta); }; const data = [ { carrera: 'ACTUARÍA', primeroMatutino: 4, primeroDespertino: 3, segundoMatutino: 4, segundoDespertino: 3, }, { carrera: 'ARQUITECTURA', primeroMatutino: 4, primeroDespertino: 3, segundoMatutino: 4, segundoDespertino: 3, }, { carrera: 'CIENCIAS POLÍTICAS Y ADMON. PÚBLICA', primeroMatutino: 3, primeroDespertino: 2, segundoMatutino: 3, segundoDespertino: 2, }, { carrera: 'COMUNICACIÓN', primeroMatutino: 4, primeroDespertino: 4, segundoMatutino: 4, segundoDespertino: 4, }, { carrera: 'DERECHO', primeroMatutino: 9, primeroDespertino: 9, segundoMatutino: 9, segundoDespertino: 9, }, { carrera: 'DISEÑO GRÁFICO', primeroMatutino: 4, primeroDespertino: 4, segundoMatutino: 4, segundoDespertino: 4, }, { carrera: 'ECONOMÍA', primeroMatutino: 3, primeroDespertino: 2, segundoMatutino: 3, segundoDespertino: 2, }, { carrera: 'ENSEÑANZA DE INGLÉS', primeroMatutino: 1, primeroDespertino: 1, segundoMatutino: 1, segundoDespertino: 1, }, { carrera: 'FILOSOFÍA', primeroMatutino: 1, primeroDespertino: 1, segundoMatutino: 1, segundoDespertino: 1, }, { carrera: 'HISTORIA', primeroMatutino: 2, primeroDespertino: 1, segundoMatutino: 2, segundoDespertino: 1, }, { carrera: 'INGENIERÍA CIVIL', primeroMatutino: 3, primeroDespertino: 2, segundoMatutino: 3, segundoDespertino: 2, }, { carrera: 'LENGUA Y LITERATURA HISPÁNICAS', primeroMatutino: 1, primeroDespertino: 1, segundoMatutino: 1, segundoDespertino: 1, }, { carrera: 'MATEMÁTICAS. APL. Y COMP. (1999)', primeroMatutino: 4, primeroDespertino: 4, segundoMatutino: 4, segundoDespertino: 4, }, { carrera: 'PEDAGOGÍA', primeroMatutino: 4, primeroDespertino: 2, segundoMatutino: 4, segundoDespertino: 2, }, { carrera: 'RELACIONES INTERNACIONALES', primeroMatutino: 3, primeroDespertino: 3, segundoMatutino: 3, segundoDespertino: 3, }, { carrera: 'SOCIOLOGÍA', primeroMatutino: 2, primeroDespertino: 2, segundoMatutino: 2, segundoDespertino: 2, }, // { // carrera: 'DERECHO (SUA)', // primeroMatutino: 0, // primeroDespertino: 0, // segundoMatutino: 0, // segundoDespertino: 0, // }, // { // carrera: 'ENSEÑANZA DE ESPAÑOL(LENG EXTRANJERA)SUA', // primeroMatutino: 0, // primeroDespertino: 0, // segundoMatutino: 0, // segundoDespertino: 0, // }, // { // carrera: 'ENSEÑANZA DE FRANCES(LENG EXTRANJERA)SUA', // primeroMatutino: 0, // primeroDespertino: 0, // segundoMatutino: 0, // segundoDespertino: 0, // }, // { // carrera: 'ENSEÑANZA DE INGLES (LENG EXTRANJERA)SUA', // primeroMatutino: 0, // primeroDespertino: 0, // segundoMatutino: 0, // segundoDespertino: 0, // }, // { // carrera: 'ENSEÑANZA DE ITALIANO(LENG EXTRANJ.)SUA', // primeroMatutino: 0, // primeroDespertino: 0, // segundoMatutino: 0, // segundoDespertino: 0, // }, // { // carrera: 'RELACIONES INTERNACIONALES (SUA)', // primeroMatutino: 0, // primeroDespertino: 0, // segundoMatutino: 0, // segundoDespertino: 0, // }, ]; const dataCarrera = async () => { console.log('\nPaso 3) Instalando catalogo Carrera.'.bold.blue); for (let i = 0; i < data.length; i++) { await Carrera.create({ carrera: data[i].carrera }); console.log( `Se agrego la carrera ${data[i].carrera} correctamente.`.magenta ); } }; const dataGrupo = async () => { console.log('\nPaso 4) Instalando catalogo Grupo.'.bold.blue); for (let i = 0; i < data.length; i++) { for (let j = 1; j <= data[i].primeroMatutino; j++) { const grupo = `110${j}`; await Grupo.create({ grupo, idCarrera: i + 1 }); console.log( `Se agrego el grupo ${grupo} a la carrera ${data[i].carrera} correctamente.` .magenta ); } for (let j = 1; j <= data[i].primeroDespertino; j++) { const grupo = `115${j}`; await Grupo.create({ grupo, idCarrera: i + 1 }); console.log( `Se agrego el grupo ${grupo} a la carrera ${data[i].carrera} correctamente.` .magenta ); } for (let j = 1; j <= data[i].segundoMatutino; j++) { const grupo = `220${j}`; await Grupo.create({ grupo, idCarrera: i + 1 }); console.log( `Se agrego el grupo ${grupo} a la carrera ${data[i].carrera} correctamente.` .magenta ); } for (let j = 1; j <= data[i].segundoDespertino; j++) { const grupo = `225${j}`; await Grupo.create({ grupo, idCarrera: i + 1 }); console.log( `Se agrego el grupo ${grupo} a la carrera ${data[i].carrera} correctamente.` .magenta ); } } }; const dataHora = async () => { let horaInicio = 8; let minutoInicio = 0; const horaFin = 15; const minutoFin = 20; let parar = false; console.log('\nPaso 5) Instalando catalogo Hora.'.bold.blue); while (!parar) { const hora = `${horaInicio < 10 ? '0' + horaInicio : horaInicio}:${ minutoInicio < 10 ? '0' + minutoInicio : minutoInicio }`; await Hora.create({ hora }); console.log(`Se agrego la hora ${hora} correctamente.`.magenta); if (horaInicio === horaFin && minutoInicio === minutoFin) parar = true; else { minutoInicio += 20; if (minutoInicio == 60) { horaInicio++; minutoInicio = 0; } } } }; const dataDia = async () => { let diaInicio = 2; const diaFin = 13; const finSemana = [7, 8]; let parar = false; console.log('\nPaso 6) Instalando catalogo Dia.'.bold.blue); while (!parar) { let saltar = false; for (let i = 0; i < finSemana.length; i++) if (finSemana[i] === diaInicio) saltar = true; if (!saltar) { const dia = `2021/08/${diaInicio < 10 ? '0' + diaInicio : diaInicio}`; await Dia.create({ dia }); console.log(`Se agrego el dia ${dia} correctamente.`.magenta); } if (diaInicio === diaFin) parar = true; else diaInicio++; } }; const dataDiaHora = async () => { const dias = await Dia.findAll().then((res) => res.length); const horas = await Hora.findAll().then((res) => res.length); console.log('\nPaso 7) Instalando catalogo DiaHora.'.bold.blue); for (let i = 1; i <= dias; i++) { for (let j = 1; j <= horas; j++) { await DiaHora.create({ idDia: i, idHora: j }); console.log( `Se agrego el diaHora con idDia: ${i} y idHora: ${j} correctamente.` .magenta ); } } }; const exe = async () => { await drop(); await sync(); await dataCarrera(); await dataGrupo(); await dataHora(); await dataDia(); await dataDiaHora(); console.log( '\nSe ha instalado exitosamente la base de datos.\n'.underline.bold.green ); process.exit(); }; exe();