092_UI_core / src /app.module.ts
anotherath's picture
connect with agent
b8979b5
import { Module } from '@nestjs/common';
import { ConfigModule } from '@nestjs/config';
import { EventEmitterModule } from '@nestjs/event-emitter';
import { ThrottlerModule } from '@nestjs/throttler';
import { APP_GUARD } from '@nestjs/core';
import { AppController } from './app.controller';
import { AppService } from './app.service';
import { appConfig, databaseConfig, redisConfig, jwtConfig, agentConfig } from './config';
import { SupabaseModule } from './database';
import { RedisModule } from './redis';
import { AuthModule } from './modules/auth/auth.module';
import { UsersModule } from './modules/users/users.module';
import { SpacesModule } from './modules/spaces/spaces.module';
import { RoomsModule } from './modules/rooms/rooms.module';
import { MembersModule } from './modules/members/members.module';
import { MessagesModule } from './modules/messages/messages.module';
import { DMsModule } from './modules/dms/dms.module';
import { NotificationsModule } from './modules/notifications/notifications.module';
import { FilesModule } from './modules/files/files.module';
import { SearchModule } from './modules/search/search.module';
import { AgentModule } from './modules/agent/agent.module';
import { ChatGatewayModule } from './gateways/chat.gateway.module';
import { JwtAuthGuard } from './common/guards/jwt-auth.guard';
@Module({
imports: [
// Configuration
ConfigModule.forRoot({
isGlobal: true,
load: [appConfig, databaseConfig, redisConfig, jwtConfig, agentConfig],
envFilePath: ['.env.local', '.env'],
}),
// Event Emitter
EventEmitterModule.forRoot(),
// Rate Limiting
ThrottlerModule.forRoot([
{
name: 'short',
ttl: 1000,
limit: 10,
},
{
name: 'medium',
ttl: 10000,
limit: 30,
},
{
name: 'long',
ttl: 60000,
limit: 100,
},
]),
// Database & Cache
SupabaseModule,
RedisModule,
// Feature Modules - Phase 2 & 3 Complete
AuthModule,
UsersModule,
SpacesModule,
RoomsModule,
MembersModule,
MessagesModule,
DMsModule,
NotificationsModule,
FilesModule,
SearchModule,
// Phase 4 - WebSocket & Real-time
ChatGatewayModule,
// Agent/Bot Messaging API
AgentModule,
],
controllers: [AppController],
providers: [
AppService,
// Global JWT Guard
{
provide: APP_GUARD,
useClass: JwtAuthGuard,
},
],
})
export class AppModule {}