import { Module } from '@nestjs/common'; import { ConfigModule, ConfigService } from '@nestjs/config'; import { AppController } from './app.controller'; import { AppService } from './app.service'; import { TypeOrmModule } from '@nestjs/typeorm'; import { AlumnoModule } from './alumno/student.module'; import { UserModule } from './user/user.module'; import { Perfil, User } from './user/entities/user.entity'; import { DetalleServicioModule } from './detalle_servicio/detalle_servicio.module'; import { PeriodoModule } from './periodo/periodo.module'; import { ServicioModule } from './servicio/servicio.module'; import { Alumno } from './alumno/entities/student.entity'; import { DetalleServicio } from './detalle_servicio/entities/detalle_servicio.entity'; import { Periodo } from './periodo/entities/periodo.entity'; import { Servicio } from './servicio/entities/servicio.entity'; import { SancionModule } from './sancion/sancion.module'; import { AlumnoSancionModule } from './alumno_sancion/alumno_sancion.module'; import { AlumnoSancion } from './alumno_sancion/entities/alumno_sancion.entity'; import { Sancion } from './sancion/entities/sancion.entity'; import { OperationsModule } from './Operations/operations.module'; import { Recibo } from './recibo/entities/recibo.entity'; import { ReciboModule } from './recibo/recibo.module'; import { MesaModule } from './mesa/mesa.module'; import { Mesa } from './mesa/entities/mesa.entity'; import { AlumnoInscritoModule } from './alumno_inscrito/alumno_inscrito.module'; import { AlumnoInscrito, Plataforma, } from './alumno_inscrito/entities/alumno_inscrito.entity'; import { EquipoModule } from './equipo/equipo.module'; import { CarreraModule } from './carrera/carrera.module'; import { Carrera } from './carrera/entities/carrera.entity'; import { Equipo } from './equipo/entities/equipo.entity'; import { AreaUbicacionModule } from './area_ubicacion/area_ubicacion.module'; import { ProgramaModule } from './programa/programa.module'; import { AreaUbicacion } from './area_ubicacion/entities/area_ubicacion.entity'; import { Programa } from './programa/entities/programa.entity'; import { ProgramaEquipoModule } from './programa_equipo/programa_equipo.module'; import { ProgramaEquipo } from './programa_equipo/entities/programa_equipo.entity'; import { BitacoraMesaModule } from './bitacora_mesa/bitacora_mesa.module'; import { BitacoraMesa } from './bitacora_mesa/entities/bitacora_mesa.entity'; import { BitacoraModule } from './bitacora/bitacora.module'; import { Bitacora } from './bitacora/entities/bitacora.entity'; import { MensajeModule } from './mensaje/mensaje.module'; import { Mensaje } from './mensaje/entities/mensaje.entity'; import { ActiveDirectoryModule } from './active-directory/active-directory.module'; import { CostoModule } from './costo/costo.module'; import { Costo } from './costo/entities/costo.entity'; @Module({ imports: [ ConfigModule.forRoot({ isGlobal: true, envFilePath: '.env', }), TypeOrmModule.forRootAsync({ inject: [ConfigService], useFactory: async (configService: ConfigService) => ({ type: 'mariadb', host: configService.get('DB_HOST'), port: configService.get('DB_PORT'), username: configService.get('DB_USER'), password: configService.get('DB_PASSWORD'), database: configService.get('DB_NAME'), entities: [ User, Alumno, DetalleServicio, Periodo, Servicio, Perfil, AlumnoSancion, Sancion, Carrera, Recibo, Mesa, AlumnoInscrito, Plataforma, Equipo, AreaUbicacion, Programa, ProgramaEquipo, BitacoraMesa, Bitacora, Mensaje, Costo, ], synchronize: false, //Never change to true in production! extra: { connectionLimit: 1, waitForConnections: true, idleTimeout: 60000, connectTimeout: 10000, }, }), }), UserModule, AlumnoModule, DetalleServicioModule, PeriodoModule, ServicioModule, SancionModule, AlumnoSancionModule, OperationsModule, ReciboModule, MesaModule, AlumnoInscritoModule, EquipoModule, CarreraModule, AreaUbicacionModule, ProgramaModule, ProgramaEquipoModule, BitacoraMesaModule, BitacoraModule, MensajeModule, CostoModule, ActiveDirectoryModule, ], controllers: [AppController], providers: [AppService], }) export class AppModule { } //IO