notification

This commit is contained in:
2025-12-08 22:04:01 +03:30
parent 060570f847
commit 9c93feee68
19 changed files with 2603 additions and 88 deletions
@@ -0,0 +1,58 @@
import { Module } from '@nestjs/common';
import { MikroOrmModule } from '@mikro-orm/nestjs';
import { BullModule } from '@nestjs/bullmq';
import { JwtModule } from '@nestjs/jwt';
import { Notification } from './entities/notification.entity';
import { NotificationPreference } from './entities/notification-preference.entity';
import { NotificationService } from './services/notification.service';
import { NotificationPreferenceService } from './services/notification-preference.service';
import { NotificationQueueService } from './services/notification-queue.service';
import { PushNotificationService } from './services/push-notification.service';
import { SmsNotificationService } from './services/sms-notification.service';
import { NotificationProcessor } from './processors/notification.processor';
import { NotificationsController } from './notifications.controller';
import { User } from '../users/entities/user.entity';
import { Restaurant } from '../restaurants/entities/restaurant.entity';
import { NotificationListeners } from './listeners/notification.listeners';
import { AuthModule } from '../auth/auth.module';
import { ConfigService } from '@nestjs/config';
@Module({
imports: [
AuthModule,
JwtModule,
MikroOrmModule.forFeature([Notification, NotificationPreference, User, Restaurant]),
BullModule.registerQueue({
name: 'notification-queue',
}),
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
},
}),
}),
],
controllers: [NotificationsController],
providers: [
NotificationService,
NotificationPreferenceService,
NotificationQueueService,
PushNotificationService,
SmsNotificationService,
NotificationProcessor,
NotificationListeners,
],
exports: [
NotificationService,
NotificationPreferenceService,
NotificationQueueService,
PushNotificationService,
SmsNotificationService,
],
})
export class NotificationsModule {}