From 7c7f6d1f62314cc147ba70e2d5fd8b9bc8c0c546 Mon Sep 17 00:00:00 2001 From: morteza-mortezai Date: Mon, 29 Jun 2026 10:02:42 +0330 Subject: [PATCH] send notif --- .../orders/listeners/order.listeners.ts | 39 ++++++++++++++++++- 1 file changed, 38 insertions(+), 1 deletion(-) diff --git a/src/modules/orders/listeners/order.listeners.ts b/src/modules/orders/listeners/order.listeners.ts index d7f0abf..ca5308e 100644 --- a/src/modules/orders/listeners/order.listeners.ts +++ b/src/modules/orders/listeners/order.listeners.ts @@ -18,6 +18,7 @@ export class OrderListeners { private readonly logger = new Logger(OrderListeners.name); private orderCreatedSmsTemplateId: string; private orderStatusChangedSmsTemplateId: string; + private orderPendingPaymentSmsTemplateId: string; // private orderCompletedSmsTemplateId: string; constructor( private readonly adminService: AdminRepository, @@ -28,6 +29,8 @@ export class OrderListeners { ) { this.orderCreatedSmsTemplateId = this.configService.get('SMS_PATTERN_ORDER_CREATED') ?? '123'; this.orderStatusChangedSmsTemplateId = this.configService.get('SMS_PATTERN_ORDER_STATUS_CHANGE') ?? '123'; + this.orderPendingPaymentSmsTemplateId = + this.configService.get('SMS_PATTERN_ORDER_PENDING_PAYMENT') ?? '123'; // this.orderCompletedSmsTemplateId = this.configService.get('SMS_PATTERN_ORDER_STATUS_COMPLETED') ?? '123'; } @@ -113,7 +116,41 @@ export class OrderListeners { userId: event.userId, }, ]; - if (event.newStatus === OrderStatus.COMPLETED) { + if (event.newStatus === OrderStatus.PENDING_PAYMENT) { + if (!event?.userId) { + this.logger.log( + `User not found for order: ${event.orderId} for shop: ${event.shopId} and order number: ${event.orderNumber}`, + ); + return; + } + + await this.notificationService.sendNotification({ + shopId: event.shopId, + message: { + title: NotifTitleEnum.ORDER_STATUS_CHANGED, + content: `سفارش شماره ${event.orderNumber} در انتظار پرداخت است. لطفا برای پرداخت به جزئیات سفارش در اپ مراجعه کنید`, + sms: { + templateId: this.orderPendingPaymentSmsTemplateId, + parameters: { + orderNumber: event.orderNumber, + }, + }, + pushNotif: { + title: `پرداخت سفارش`, + content: `سفارش شماره ${event.orderNumber} در انتظار پرداخت است. لطفا برای پرداخت به جزئیات سفارش مراجعه کنید`, + icon: `/`, + action: { + type: NotifTitleEnum.ORDER_STATUS_CHANGED, + url: `/orders/${event.orderId}`, + }, + }, + }, + recipients, + metadata: { + priority: 1, + }, + }); + } else if (event.newStatus === OrderStatus.COMPLETED) { if (!event?.userId) { this.logger.log(