import { Module } from '@nestjs/common'; import { TypeOrmModule } from '@nestjs/typeorm'; import { ConfigModule, ConfigService } from '@nestjs/config'; import { AppController } from './app.controller'; import { AppService } from './app.service'; import { EventosModule } from './eventos/eventos.module'; import { ParticipanteController } from './participante/participante.controller'; import { ParticipanteModule } from './participante/participante.module'; import { EventoParticipanteModule } from './evento-participante/evento-participante/evento-participante.module'; import { AuthModule } from './auth/auth.module'; import { PassportModule } from '@nestjs/passport'; import { JwtModule } from '@nestjs/jwt'; import { Evento } from './eventos/evento.entity'; import { Participante } from './participante/participante.entity'; import { EventoParticipante } from './evento-participante/evento-participante/eventoParticipante.entity'; import { InscripcionDscModule } from './inscripcion-dsc/inscripcion-dsc.module'; import { InscripcionAreaModule } from './inscripcion-area/inscripcion-area.module'; import { InscripcionStatusService } from './inscripcion-status/inscripcion-status.service'; import { InscripcionStatusController } from './inscripcion-status/inscripcion-status.controller'; import { InscripcionStatusModule } from './inscripcion-status/inscripcion-status.module'; import { PeriodoModule } from './periodo/periodo.module'; import { InscripcionUsuarioModule } from './inscripcion-usuario/inscripcion-usuario.module'; import { MiembroModule } from './miembro/miembro.module'; import { Miembro } from './miembro/entity/miembro.entity'; import { InscripcionArea } from './inscripcion-area/entity/inscripcion_area.entity'; import { InscripcionDSC } from './inscripcion-dsc/entity/inscripcion_dsc.entity'; import { InscripcionStatus } from './inscripcion-status/entity/inscripcion_status.entity'; import { InscripcionUsuario } from './inscripcion-usuario/entity/inscripcion_usuario.entity'; import { Area } from './catalogos/area.entity'; import { TipoMiembro } from './catalogos/tipo-miembro.entity'; import { Carrera } from './catalogos/carrera.entity'; import { Periodo } from './periodo/entity/periodo.entity'; import { MiembroProyectoModule } from './miembro-proyecto/miembro-proyecto.module'; import { MiembroContactoModule } from './miembro-contacto/miembro-contacto.module'; import { ProyectoModule } from './proyecto/proyecto.module'; import { ProyectoActividadModule } from './proyecto-actividad/proyecto-actividad.module'; import { ActividadModule } from './actividad/actividad.module'; import { MiembroProyecto } from './miembro-proyecto/entity/miembro_proyecto.entity'; import { MiembroContacto } from './miembro-contacto/entity/miembro_contacto.entity'; import { Proyecto } from './proyecto/entity/proyecto.entity'; import { Contacto } from './contacto/entity/contacto.entity'; import { Equipo } from './equipo/entity/equipo.entity'; import { EquipoEvento } from './equipo-evento/entity/equipo_evento.entity'; import { EquipoMiembro } from './equipo-miembro/entity/equipo_miembro.entity'; import { EmailService } from './email/email.service'; import { EmailController } from './email/email.controller'; import { EmailModule } from './email/email.module'; @Module({ imports: [ ConfigModule.forRoot({ envFilePath: '.env', isGlobal: true, }), TypeOrmModule.forRootAsync({ imports: [ConfigModule], 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: [ Evento, Participante, EventoParticipante, /* Agregadas el 29 de febrero */ Miembro, InscripcionArea, InscripcionDSC, InscripcionStatus, InscripcionUsuario, Area, TipoMiembro, Carrera, Periodo, /* Agregadas el 1 de marzo */ MiembroProyecto, MiembroContacto, Proyecto, Contacto, Equipo, EquipoEvento, EquipoMiembro, ], synchronize: true, }), }), EventosModule, ParticipanteModule, EventoParticipanteModule, AuthModule, PassportModule, JwtModule.register({}), InscripcionDscModule, InscripcionAreaModule, InscripcionStatusModule, PeriodoModule, InscripcionUsuarioModule, MiembroModule, MiembroProyectoModule, MiembroContactoModule, ProyectoModule, ProyectoActividadModule, ActividadModule, EmailModule, ], controllers: [ AppController, ParticipanteController, InscripcionStatusController, ], providers: [AppService, InscripcionStatusService], }) export class AppModule { static port: number; constructor(private readonly configService: ConfigService) { AppModule.port = this.configService.get('PORT'); } }