import { Module } from '@nestjs/common'; import { ConfigModule } from '@nestjs/config'; import { APP_GUARD, APP_FILTER } from '@nestjs/core'; import { validateEnv } from './config/env.schema'; import { DatabaseModule } from './database/database.module'; import { CommonModule } from './common/common.module'; import { AuthModule } from './modules/auth/auth.module'; import { UsersModule } from './modules/users/users.module'; import { SetupModule } from './modules/setup/setup.module'; import { SystemModule } from './modules/system/system.module'; import { SettingsModule } from './modules/settings/settings.module'; import { AdminModule } from './modules/admin/admin.module'; import { UploadsModule } from './modules/uploads/uploads.module'; import { FrontendModule } from './frontend/frontend.module'; import { GlobalExceptionFilter } from './common/filters/global-exception.filter'; import { JwtAuthGuard } from './common/guards/jwt-auth.guard'; @Module({ imports: [ ConfigModule.forRoot({ isGlobal: true, cache: true, validate: validateEnv, }), DatabaseModule, CommonModule, SettingsModule, AuthModule, UsersModule, SetupModule, SystemModule, AdminModule, UploadsModule, FrontendModule, ], providers: [ { provide: APP_GUARD, useClass: JwtAuthGuard }, { provide: APP_FILTER, useClass: GlobalExceptionFilter }, ], }) export class AppModule {}