import { MiddlewareConsumer, Module, NestModule } from '@nestjs/common'; import { ConfigModule } from '@nestjs/config'; import { AuditModule } from './audit/audit.module'; import { ManualOperationAuditMiddleware } from './audit/manual-operation-audit.middleware'; import { AuthModule } from './auth/auth.module'; import { SessionValidationMiddleware } from './auth/session-validation.middleware'; import { RequestContextMiddleware } from './common/request-context.middleware'; import { BillingModule } from './billing/billing.module'; import { ChannelsModule } from './channels/channels.module'; import { CertificationModule } from './certification/certification.module'; import { DictionariesModule } from './dictionaries/dictionaries.module'; import { DeletionGovernanceModule } from './deletion-governance/deletion-governance.module'; import { FilesModule } from './files/files.module'; import { HealthController } from './health.controller'; import { OperationsModule } from './operations/operations.module'; import { OpenApiModule } from './open-api/open-api.module'; import { PrismaModule } from './prisma/prisma.module'; import { RiskReviewModule } from './risk-review/risk-review.module'; import { ReportsModule } from './reports/reports.module'; import { ReportMaterialsModule } from './report-materials/report-materials.module'; import { SendChainModule } from './send-chain/send-chain.module'; import { SmsConfigModule } from './sms-config/sms-config.module'; import { TenantsModule } from './tenants/tenants.module'; import { UsersModule } from './users/users.module'; @Module({ imports: [ ConfigModule.forRoot({ isGlobal: true, envFilePath: ['.env.local', '.env'], }), PrismaModule, AuthModule, TenantsModule, UsersModule, AuditModule, FilesModule, DictionariesModule, DeletionGovernanceModule, BillingModule, CertificationModule, SmsConfigModule, ChannelsModule, RiskReviewModule, ReportsModule, ReportMaterialsModule, SendChainModule, OperationsModule, OpenApiModule, ], controllers: [HealthController], providers: [RequestContextMiddleware, SessionValidationMiddleware, ManualOperationAuditMiddleware], }) export class AppModule implements NestModule { configure(consumer: MiddlewareConsumer) { consumer.apply(RequestContextMiddleware, SessionValidationMiddleware, ManualOperationAuditMiddleware).forRoutes('*'); } }