Spaces:
Sleeping
Sleeping
| 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'; | |
| ({ | |
| 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 {} | |