import { Module } from '@nestjs/common'; import { APP_GUARD } from '@nestjs/core'; import { TypeOrmModule } from '@nestjs/typeorm'; import { buildTypeOrmConfig } from './database.config'; import { HealthController } from './common/health.controller'; import { MetricsController } from './common/metrics.controller'; import { MetricsService } from './common/metrics.service'; import { ApiKeyGuard } from './common/api-key.guard'; import { GuildsModule } from './guilds/guilds.module'; import { ChannelsModule } from './channels/channels.module'; import { TurnModule } from './channels/turn.module'; import { MessagingModule } from './messaging/messaging.module'; import { EventsModule } from './events/events.module'; import { RealtimeModule } from './realtime/realtime.module'; import { MembersModule } from './members/members.module'; @Module({ imports: [ TypeOrmModule.forRoot(buildTypeOrmConfig()), EventsModule, RealtimeModule, GuildsModule, TurnModule, ChannelsModule, MembersModule, MessagingModule, ], controllers: [HealthController, MetricsController], providers: [ MetricsService, { provide: APP_GUARD, useClass: ApiKeyGuard, }, ], }) export class AppModule {}