import { JwtAuthGuard, RolesGuard } from '@/common/guards'; import { LoggerModule, NodeMailerModule, ThrottleModule, } from '@/common/modules'; import { UsersModule } from '@/features/users/users.module'; import { Module } from '@nestjs/common'; import { ConfigModule } from '@nestjs/config'; import { APP_GUARD } from '@nestjs/core'; import { JwtModule } from '@nestjs/jwt'; import { ThrottlerGuard } from '@nestjs/throttler'; import { DrizzleModule } from './database/drizzle.module'; import { AuthModule } from './features/auth/auth.module'; import { ConfigurationsModule } from './features/configurations/configurations.module'; import { LocationModule } from './features/location/location.module' import { MailModule } from './features/mail/mail.module'; import { RolesModule } from './features/roles/roles.module'; import { UserRolesModule } from './features/user-roles/user-roles.module'; import { SurveysModule } from './features/surveys/surveys.module'; import { InventoryModule } from './features/inventory/inventory.module'; import { TrainingModule } from './features/training/training.module'; @Module({ providers: [ { provide: APP_GUARD, useClass: JwtAuthGuard, }, { provide: APP_GUARD, useClass: RolesGuard, }, // { // provide: APP_GUARD, // useClass: PermissionsGuard, // }, { provide: APP_GUARD, useClass: ThrottlerGuard, }, ], imports: [ JwtModule.register({ global: true, }), ConfigModule.forRoot({ isGlobal: true, //validate: validateEnv, }), NodeMailerModule, LoggerModule, ThrottleModule, UsersModule, AuthModule, MailModule, DrizzleModule, RolesModule, UserRolesModule, ConfigurationsModule, SurveysModule, LocationModule, InventoryModule, TrainingModule ], }) export class AppModule { }