import { Module } from "@nestjs/common"; import { ConfigModule } from "@nestjs/config"; import { ClientsModule, Transport } from "@nestjs/microservices"; import { NotificationsService } from "./notifications.service"; import { SmsClientService } from "./sms-client.service"; import { EmailNotificationStrategy } from "./strategies/notification.email.strategy"; import { SmsNotificationStrategy } from "./strategies/notification.sms.strategy"; @Module({ imports: [ ConfigModule, ClientsModule.register([ { name: "SMS_SERVICE", transport: Transport.RMQ, options: { urls: [process.env.RABBITMQ_URL as string], queue: process.env.SMS_QUEUE ?? "sms_queue", queueOptions: { durable: true }, }, }, ]), ], controllers: [], providers: [EmailNotificationStrategy, SmsNotificationStrategy, NotificationsService, SmsClientService], exports: [NotificationsService, SmsClientService], }) export class NotificationsModule {}