src/app.module.ts
import { Module } from "@nestjs/common";
import { ConfigModule } from "@nestjs/config";
import { APP_GUARD, APP_INTERCEPTOR } from "@nestjs/core";
import { AppController } from "./app.controller";
import { AppService } from "./app.service";
import { ProjectModule } from "./project/project.module";
import { AuthModule } from "./common/auth/auth.module";
import { JwtAuthGuard } from "./common/auth/guards/jwt-auth.guard";
import { IAMModule } from "./iam/iam.module";
import { CostModule } from "./cost/cost.module";
import { ModelModule } from "./models/model.module";
import { BusinessUnitModule } from "./businessUnit/business-unit.module";
import { RequestModule } from "./request/request.module";
import { ChatBotModule } from "./chatbot/chatbot.module";
import { MetricsModule } from "./metrics/metrics.module";
import { PermissionInterceptor, UserInterceptor } from "./iam/interceptors";
import { AlertModule } from "./alert/alert.module";
import { NotificationModule } from "./notification/notification.module";
import { SettingsModule } from "./settings/settings.module";
import { ComplianceModule } from "./compliance/compliance.module";
import { DatasetModule } from "./dataset/dataset.module";
import { MinioModule } from "./providers/minio/minio.module";
import { UserInteractionModule } from "./userInteraction/user-interaction.module";
@Module({
imports: [
ConfigModule.forRoot(),
AuthModule,
ProjectModule,
IAMModule,
CostModule,
ModelModule,
BusinessUnitModule,
RequestModule,
ChatBotModule,
MetricsModule,
AlertModule,
NotificationModule,
SettingsModule,
ComplianceModule,
DatasetModule,
MinioModule,
UserInteractionModule,
],
controllers: [AppController],
providers: [
AppService,
{
provide: APP_GUARD,
useExisting: JwtAuthGuard,
},
{
provide: APP_INTERCEPTOR,
useExisting: UserInterceptor,
},
{
provide: APP_INTERCEPTOR,
useExisting: PermissionInterceptor,
},
],
})
export class AppModule {}