dcb-service-core-api/src/app.module.ts
Mamadou Khoussa [028918 DSI/DAC/DIF/DS] 1ddc8e9ee4 fix error
2025-10-25 00:28:27 +00:00

60 lines
2.0 KiB
TypeScript

import { Module } from '@nestjs/common';
import { ConfigModule, ConfigService } from '@nestjs/config';
import { BullModule } from '@nestjs/bull';
import { ScheduleModule } from '@nestjs/schedule';
import { EventEmitterModule } from '@nestjs/event-emitter';
import { CacheModule } from '@nestjs/cache-manager';
import * as redisStore from 'cache-manager-redis-store';
// Import des configurations
import appConfig from './config/app.config';
import operatorsConfig from './config/operators.config';
import databaseConfig from './config/database.config';
// Import des modules
import { PrismaService } from './shared/services/prisma.service';
import { OperatorsModule } from './modules/operators/operators.module';
import { PaymentsModule } from './modules/payments/payments.module';
import { SubscriptionsModule } from './modules/subscriptions/subscriptions.module';
import { OtpChallengeModule } from './modules/challenge/otp.challenge.module';
@Module({
imports: [
ConfigModule.forRoot({
isGlobal: true,
load: [appConfig, operatorsConfig, databaseConfig],
envFilePath: ['.env.local', '.env'],
}),
BullModule.forRootAsync({
imports: [ConfigModule],
useFactory: (configService: ConfigService) => ({
redis: {
host: configService.get('app.redis.host'),
port: configService.get('app.redis.port'),
},
}),
inject: [ConfigService],
}),
CacheModule.registerAsync({
imports: [ConfigModule],
useFactory: (configService: ConfigService) => ({
store: redisStore,
host: configService.get('app.redis.host'),
port: configService.get('app.redis.port'),
ttl: 600, // 10 minutes default
}),
inject: [ConfigService],
isGlobal: true,
}),
ScheduleModule.forRoot(),
EventEmitterModule.forRoot(),
OperatorsModule,
PaymentsModule,
SubscriptionsModule,
OtpChallengeModule
],
providers: [PrismaService],
exports: [PrismaService],
})
export class AppModule {}