| 12345678910111213141516171819202122232425262728293031323334353637383940 |
- import { Module } from '@nestjs/common';
- import { ConfigModule, ConfigService } from '@nestjs/config';
- import { ScheduleModule } from '@nestjs/schedule';
- import { RedisModule } from '@box/db/redis/redis.module';
- import { PrismaMongoModule } from './prisma/prisma-mongo.module';
- import { UserLoginModule } from './feature/user-login/user-login.module';
- import { RabbitmqConsumerModule } from './feature/rabbitmq/rabbitmq-consumer.module';
- import { StatsEventsModule } from './feature/stats-events/stats-events.module';
- import { StatsReportingModule } from './feature/stats-reporting/stats-reporting.module';
- import path from 'path';
- @Module({
- imports: [
- ConfigModule.forRoot({
- isGlobal: true,
- envFilePath: [path.resolve(process.cwd(), '.env')],
- }),
- ScheduleModule.forRoot(),
- // Global Redis module for score syncing
- RedisModule.forRootAsync({
- imports: [ConfigModule],
- inject: [ConfigService],
- useFactory: (configService: ConfigService) => ({
- host: configService.get<string>('REDIS_HOST') ?? '127.0.0.1',
- port: configService.get<number>('REDIS_PORT') ?? 6379,
- password: configService.get<string>('REDIS_PASSWORD'),
- db: configService.get<number>('REDIS_DB') ?? 0,
- keyPrefix: configService.get<string>('REDIS_KEY_PREFIX'),
- }),
- }),
- PrismaMongoModule,
- UserLoginModule,
- RabbitmqConsumerModule,
- StatsEventsModule,
- StatsReportingModule,
- ],
- })
- export class AppModule {}
|