import { Module } from '@nestjs/common'; import { ConfigModule } from '@nestjs/config'; import { APP_FILTER, APP_INTERCEPTOR, APP_GUARD } from '@nestjs/core'; import { ApiModule } from './api/api.module'; import { InfrastructureModule } from './infrastructure/infrastructure.module'; import { ApplicationModule } from './application/application.module'; import { DomainExceptionFilter } from './shared/filters/domain-exception.filter'; import { TransformInterceptor } from './shared/interceptors/transform.interceptor'; import { LoggingInterceptor } from './shared/interceptors/logging.interceptor'; import { JwtAuthGuard } from './shared/guards/jwt-auth.guard'; @Module({ imports: [ ConfigModule.forRoot({ isGlobal: true, envFilePath: [`.env.${process.env.NODE_ENV || 'development'}`, '.env'], ignoreEnvFile: false, }), InfrastructureModule, ApplicationModule, ApiModule, ], providers: [ { provide: APP_FILTER, useClass: DomainExceptionFilter }, { provide: APP_INTERCEPTOR, useClass: LoggingInterceptor }, { provide: APP_INTERCEPTOR, useClass: TransformInterceptor }, { provide: APP_GUARD, useClass: JwtAuthGuard }, ], }) export class AppModule {}