Files
dpage-api/src/modules/notifications/notifications.module.ts
T
2026-03-10 10:47:25 +03:30

47 lines
1.5 KiB
TypeScript

import { Module, forwardRef } from '@nestjs/common';
import { MikroOrmModule } from '@mikro-orm/nestjs';
import { BullModule } from '@nestjs/bullmq';
import { JwtModule } from '@nestjs/jwt';
import { NotificationQueueService } from './services/notification-queue.service';
import { SmsProcessor } from './processors/sms.processor';
import { AuthModule } from '../auth/auth.module';
import { ConfigService } from '@nestjs/config';
import { NotificationQueueNameEnum } from './constants/queue';
import { UtilsModule } from '../utils/utils.module';
import { AdminModule } from '../admin/admin.module';
import { SmsService } from './services/sms.service';
@Module({
imports: [
forwardRef(() => AuthModule),
JwtModule,
BullModule.registerQueue(
{ name: NotificationQueueNameEnum.SMS },
{ name: NotificationQueueNameEnum.PUSH },
{ name: NotificationQueueNameEnum.IN_APP },
),
BullModule.forRootAsync({
inject: [ConfigService],
useFactory: (config: ConfigService) => ({
connection: {
host: config.get('REDIS_HOST') || 'captain.dev.danakcorp.com',
port: config.get('REDIS_PORT') || 50601,
password: config.get('REDIS_PASSWORD'), // Pull from .env
},
}),
}),
AdminModule,
UtilsModule,
],
controllers: [],
providers: [
NotificationQueueService,
SmsProcessor,
SmsService,
],
exports: [
NotificationQueueService, SmsService],
})
export class NotificationsModule { }