diff --git a/src/modules/criticisms/providers/criticisms.service.ts b/src/modules/criticisms/providers/criticisms.service.ts index 8eaec69..950a463 100755 --- a/src/modules/criticisms/providers/criticisms.service.ts +++ b/src/modules/criticisms/providers/criticisms.service.ts @@ -4,7 +4,7 @@ import { CommonMessage, CriticismMessage } from '../../../common/enums/message.e import { NotificationQueueService } from '../../notification/services/notification-queue.service'; import { AdminRepository } from '../../admin/repositories/admin.repository'; import { PermissionEnum } from '../../../common/enums/permission.enum'; -import { NotifEvent } from '../../notification/interfaces/notification.interface'; +import { NotifTitle } from '../../notification/interfaces/notification.interface'; import { Notification } from '../../notification/entities/notification.entity'; import { CreateCriticismDto } from '../DTO/create-criticism.dto'; import { SearchCriticismQueryDto } from '../DTO/search-criticism-query.dto'; @@ -21,7 +21,7 @@ export class CriticismsService { private readonly em: EntityManager, private readonly adminRepository: AdminRepository, private readonly notificationQueueService: NotificationQueueService, - ) {} + ) { } async create(createDto: CreateCriticismDto, userId: string) { return this.em.transactional(async (em) => { @@ -119,7 +119,7 @@ export class CriticismsService { const notifications = admins.map((admin) => em.create(Notification, { admin, - title: NotifEvent.NEW_CRITICISM, + title: NotifTitle.NEW_CRITICISM, content: body, }), ); @@ -129,7 +129,7 @@ export class CriticismsService { await this.notificationQueueService.addBulkInAppNotifications( notifications.map((n) => ({ recipient: { adminId: n.admin!.id }, - subject: NotifEvent.NEW_CRITICISM, + subject: NotifTitle.NEW_CRITICISM, body, notificationId: n.id, })), diff --git a/src/modules/notification/entities/notification.entity.ts b/src/modules/notification/entities/notification.entity.ts index bd22f71..aa607cf 100644 --- a/src/modules/notification/entities/notification.entity.ts +++ b/src/modules/notification/entities/notification.entity.ts @@ -1,7 +1,7 @@ import { Entity, Property, ManyToOne, Enum, PrimaryKey, OptionalProps } from '@mikro-orm/core'; import { BaseEntity } from '../../../common/entities/base.entity'; import { User } from '../../user/entities/user.entity'; -import { NotifEvent } from '../interfaces/notification.interface'; +import { NotifTitle } from '../interfaces/notification.interface'; import { Admin } from 'src/modules/admin/entities/admin.entity'; @Entity({ tableName: 'notifications' }) @@ -14,8 +14,8 @@ export class Notification extends BaseEntity { @ManyToOne(() => Admin, { nullable: true }) admin?: Admin; - @Enum(() => NotifEvent) - title!: NotifEvent; + @Enum(() => NotifTitle) + title!: NotifTitle; @Property() content!: string; diff --git a/src/modules/notification/interfaces/jobs-queue.interface.ts b/src/modules/notification/interfaces/jobs-queue.interface.ts index b9173a3..c70e62e 100644 --- a/src/modules/notification/interfaces/jobs-queue.interface.ts +++ b/src/modules/notification/interfaces/jobs-queue.interface.ts @@ -1,4 +1,4 @@ -import type { NotifEvent, recipientType } from './notification.interface'; +import type { NotifTitle, recipientType } from './notification.interface'; export interface SmsNotificationQueueJob { recipient: recipientType; @@ -18,7 +18,7 @@ export interface PushNotificationQueueJob { } export interface InAppNotificationQueueJob { recipient: { adminId: string; }; - subject: NotifEvent; + subject: NotifTitle; body: string; notificationId: string; } diff --git a/src/modules/notification/interfaces/notification.interface.ts b/src/modules/notification/interfaces/notification.interface.ts index 4fb959d..378bf58 100644 --- a/src/modules/notification/interfaces/notification.interface.ts +++ b/src/modules/notification/interfaces/notification.interface.ts @@ -4,18 +4,22 @@ export enum NotifChannelEnum { PUSH = 'push', } -export enum NotifEvent { +export enum NotifTitle { NEW_REQUEST = 'newRequest', - INVOICED = 'invoiced', - NEW_ORDER = 'newOrder', // for chapkhane sms bere - DESIGNER_ASSIGN = 'designerAssign', - PAYMENT_SUCCESS = 'paymentSuccess', + NEW_INVOICE = 'newInvoice', + NEW_PAYMENT = 'newPayment', + NEW_ORDER = 'newOrder', NEW_CRITICISM = 'newCriticism', + NEW_TICKET = 'newTicket', + NEW_ORDER_MESSAGE = 'newOrderMessage', + NEW_REQUEST_MESSAGE = 'newRequestMessage', + NEW_REQUEST_COMMENT = 'newRequestComment', + NEW_REQUEST_LIKE = 'newRequestLike', } export type recipientType = { userId: string } | { adminId: string }; export interface NotifRequestMessage { - title: NotifEvent; + title: NotifTitle; content: string; sms: { templateId: string; @@ -35,23 +39,23 @@ interface INotifySmsPayload { } interface INotifySms { phone: string; - subject: NotifEvent; + subject: NotifTitle; } export interface IInAppNotificationPayload { notificationId: string; - subject: NotifEvent; + subject: NotifTitle; body: string; } -// 2. Payment Success -interface IPaymentSuccessSmsNotifyPayload extends INotifySmsPayload { - amount: number; - date: Date; -} +// // 2. Payment Success +// interface IPaymentSuccessSmsNotifyPayload extends INotifySmsPayload { +// amount: number; +// date: Date; +// } -interface IPaymentSuccessSmsNotify extends INotifySms { - subject: NotifEvent.PAYMENT_SUCCESS; - payload: IPaymentSuccessSmsNotifyPayload; -} +// interface IPaymentSuccessSmsNotify extends INotifySms { +// subject: NotifEvent.PAYMENT_SUCCESS; +// payload: IPaymentSuccessSmsNotifyPayload; +// } -export type ISmsNotifyPayload = IPaymentSuccessSmsNotify; +// export type ISmsNotifyPayload = IPaymentSuccessSmsNotify; diff --git a/src/modules/notification/services/notification.service.ts b/src/modules/notification/services/notification.service.ts index b3fede9..7654655 100644 --- a/src/modules/notification/services/notification.service.ts +++ b/src/modules/notification/services/notification.service.ts @@ -3,7 +3,7 @@ import { EntityManager, FilterQuery } from '@mikro-orm/postgresql'; import { Notification } from '../entities/notification.entity'; import { NotificationQueueService } from './notification-queue.service'; import { NotificationsGateway } from '../notifications.gateway'; -import { NotifChannelEnum, NotifRequest, NotifEvent } from '../interfaces/notification.interface'; +import { NotifChannelEnum, NotifRequest, NotifTitle } from '../interfaces/notification.interface'; import { SmsLogRepository } from '../repositories/sms-log.repository'; import { Admin } from '../../admin/entities/admin.entity'; import { User } from '../../user/entities/user.entity'; @@ -41,13 +41,13 @@ export class NotificationService { if (channels.includes(NotifChannelEnum.IN_APP)) { const adminNotifications = notifications - .filter(n => n.admin?.id) - .map(notification => ({ - recipient: { adminId: notification.admin!.id }, - subject: message.title, - body: message.content, - notificationId: notification.id, - })) + .filter(n => n.admin?.id) + .map(notification => ({ + recipient: { adminId: notification.admin!.id }, + subject: message.title, + body: message.content, + notificationId: notification.id, + })) if (adminNotifications.length > 0) { await this.queueService.addBulkInAppNotifications(adminNotifications); @@ -71,7 +71,7 @@ export class NotificationService { async createAdminBulkNotifications( params: { - title: NotifEvent; + title: NotifTitle; content: string; adminId: string | null; userId: string | null; diff --git a/src/modules/order/listeners/order.listeners.ts b/src/modules/order/listeners/order.listeners.ts index d15550a..2a6521e 100644 --- a/src/modules/order/listeners/order.listeners.ts +++ b/src/modules/order/listeners/order.listeners.ts @@ -3,7 +3,7 @@ import { OnEvent } from '@nestjs/event-emitter'; import { AdminRepository } from 'src/modules/admin/repositories/admin.repository'; import { OrderCreatedEvent, OrderStatusChangedEvent } from '../events/order.events'; import { PermissionEnum } from 'src/common/enums/permission.enum'; -import { NotifEvent } from 'src/modules/notification/interfaces/notification.interface'; +import { NotifTitle } from 'src/modules/notification/interfaces/notification.interface'; import { NotificationService } from 'src/modules/notification/services/notification.service'; import { ConfigService } from '@nestjs/config'; import { OrderRepository } from '../repositories/order.repository'; diff --git a/src/modules/payment/listeners/payment.listeners.ts b/src/modules/payment/listeners/payment.listeners.ts index cbed05d..6af5397 100644 --- a/src/modules/payment/listeners/payment.listeners.ts +++ b/src/modules/payment/listeners/payment.listeners.ts @@ -4,7 +4,7 @@ import { EntityManager } from '@mikro-orm/postgresql'; import { AdminRepository } from 'src/modules/admin/repositories/admin.repository'; import { onlinePaymentSucceedEvent } from '../events/payment.events'; import { PermissionEnum } from 'src/common/enums/permission.enum'; -import { NotifEvent } from 'src/modules/notification/interfaces/notification.interface'; +import { NotifTitle } from 'src/modules/notification/interfaces/notification.interface'; import { Notification } from 'src/modules/notification/entities/notification.entity'; import { NotificationQueueService } from 'src/modules/notification/services/notification-queue.service'; @@ -16,7 +16,7 @@ export class PaymentListeners { private readonly adminRepository: AdminRepository, private readonly em: EntityManager, private readonly notificationQueueService: NotificationQueueService, - ) {} + ) { } @OnEvent(onlinePaymentSucceedEvent.name) async handleOnlinePaymentVerified(event: InstanceType) { @@ -39,7 +39,7 @@ export class PaymentListeners { const notifications = admins.map((admin) => this.em.create(Notification, { admin, - title: NotifEvent.PAYMENT_SUCCESS, + title: NotifTitle.NEW_PAYMENT, content: body, }), ); @@ -49,7 +49,7 @@ export class PaymentListeners { await this.notificationQueueService.addBulkInAppNotifications( notifications.map((n) => ({ recipient: { adminId: n.admin!.id }, - subject: NotifEvent.PAYMENT_SUCCESS, + subject: NotifTitle.NEW_PAYMENT, body, notificationId: n.id, })),