63 lines
2.1 KiB
TypeScript
63 lines
2.1 KiB
TypeScript
import { BullModule } from '@nestjs/bullmq';
|
|||
|
|
import { Module } from '@nestjs/common';
|
||
|
|
import { ConfigModule, ConfigService } from '@nestjs/config';
|
||
|
|
import { ScheduleModule } from '@nestjs/schedule';
|
||
|
|
import { ThrottlerModule } from '@nestjs/throttler';
|
||
|
|
import { validateEnv } from './config/env.validation';
|
||
|
|
import { AdminAuditModule } from './modules/admin-audit/admin-audit.module';
|
||
|
|
import { AdminAuthModule } from './modules/admin-auth/admin-auth.module';
|
||
|
|
import { AuthModule } from './modules/auth/auth.module';
|
||
|
|
import { CampaignModule } from './modules/campaign/campaign.module';
|
||
|
|
import { ChanceModule } from './modules/chance/chance.module';
|
||
|
|
import { PrizeModule } from './modules/prize/prize.module';
|
||
|
|
import { ReportModule } from './modules/report/report.module';
|
||
|
|
import { SmsModule } from './modules/sms/sms.module';
|
||
|
|
import { SpinEngineModule } from './modules/spin-engine/spin-engine.module';
|
||
|
|
import { StorageModule } from './modules/storage/storage.module';
|
||
|
|
import { UserModule } from './modules/user/user.module';
|
||
|
|
import { WinnerModule } from './modules/winner/winner.module';
|
||
|
|
import { PrismaModule } from './prisma/prisma.module';
|
||
|
|
|
||
|
|
@Module({
|
||
|
|
imports: [
|
||
|
|
ConfigModule.forRoot({
|
||
|
|
isGlobal: true,
|
||
|
|
validate: validateEnv,
|
||
|
|
envFilePath: '.env',
|
||
|
|
}),
|
||
|
|
ScheduleModule.forRoot(),
|
||
|
|
ThrottlerModule.forRoot([
|
||
|
|
{
|
||
|
|
name: 'default',
|
||
|
|
ttl: 60000,
|
||
|
|
limit: 60,
|
||
|
|
},
|
||
|
|
]),
|
||
|
|
BullModule.forRootAsync({
|
||
|
|
imports: [ConfigModule],
|
||
|
|
useFactory: (configService: ConfigService) => ({
|
||
|
|
connection: {
|
||
|
|
host: configService.get<string>('REDIS_HOST', 'localhost'),
|
||
|
|
port: configService.get<number>('REDIS_PORT', 6379),
|
||
|
|
password: configService.get<string>('REDIS_PASSWORD') || undefined,
|
||
|
|
},
|
||
|
|
}),
|
||
|
|
inject: [ConfigService],
|
||
|
|
}),
|
||
|
|
PrismaModule,
|
||
|
|
AuthModule,
|
||
|
|
AdminAuthModule,
|
||
|
|
StorageModule,
|
||
|
|
CampaignModule,
|
||
|
|
PrizeModule,
|
||
|
|
ChanceModule,
|
||
|
|
UserModule,
|
||
|
|
SmsModule,
|
||
|
|
SpinEngineModule,
|
||
|
|
WinnerModule,
|
||
|
|
ReportModule,
|
||
|
|
AdminAuditModule,
|
||
|
|
],
|
||
|
|
})
|
||
|
|
export class AppModule {}
|