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'; import { MulterModule } from '@nestjs/platform-express'; import { ServeStaticModule } from '@nestjs/serve-static'; import { join } from 'path'; import { CarruselModule } from './carrusel/carrusel.module'; import { Carrusel } from './carrusel/entity/carrusel.entity'; import { ComentariosModule } from './comentarios/comentarios.module'; import { Comentarios } from './comentarios/entity/comentarios.entity'; import { AlmacenamientoModule } from './almacenamiento/almacenamiento.module'; import { Almacenamiento } from './almacenamiento/entity/almacenamiento.entity'; import { TylController } from './tyl/tyl.controller'; @Module({ imports: [ ServeStaticModule.forRoot({ rootPath: join(__dirname, '..', 'public'), exclude: ['/api*'], // Excluir la ruta "/api" de servir archivos estáticos }), 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'), synchronize: true, 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, /* Agregado el 2 de junio */ Carrusel, /* No recuerdo porque empece a ponerle fechas */ Comentarios, ], }), }), EventosModule, ParticipanteModule, EventoParticipanteModule, AuthModule, PassportModule, JwtModule.register({}), InscripcionDscModule, InscripcionAreaModule, InscripcionStatusModule, PeriodoModule, InscripcionUsuarioModule, MiembroModule, MiembroProyectoModule, MiembroContactoModule, ProyectoModule, ProyectoActividadModule, ActividadModule, EmailModule, ComentariosModule, MulterModule.register({ dest: './uploads', // directorio de destino para guardar los archivos cargados }), CarruselModule, ComentariosModule, AlmacenamientoModule, ], controllers: [ AppController, InscripcionStatusController, TylController, ], providers: [AppService, InscripcionStatusService], }) export class AppModule { static port: number; constructor(private readonly configService: ConfigService) { console.log('PORT', this.configService.get('PORT')); AppModule.port = this.configService.get('PORT'); } }