From e8402b673fd731e1d987409049dd13d693dacc8a Mon Sep 17 00:00:00 2001 From: Mahyargdz Date: Sun, 11 May 2025 16:06:14 +0330 Subject: [PATCH] chore: add wallet deduct notification --- .../invoices/providers/invoices.service.ts | 16 ++++++++++++++++ .../notifications/queue/notification.queue.ts | 3 +++ 2 files changed, 19 insertions(+) diff --git a/src/modules/invoices/providers/invoices.service.ts b/src/modules/invoices/providers/invoices.service.ts index 29374ec..cb92666 100755 --- a/src/modules/invoices/providers/invoices.service.ts +++ b/src/modules/invoices/providers/invoices.service.ts @@ -549,6 +549,7 @@ export class InvoicesService { // await queryRunner.manager.save(UserSubscription, userSubscription); await this.walletsService.createSubscriptionTransaction(invoice.totalPrice, userWallet.id, queryRunner); + await this.addNotifyForWalletDeduction(invoice, user, userWallet, WalletMessage.SUBSCRIPTION_WALLET_TRANSFER); await this.addNotifyAdminForSubscriptionPaymentToQueue(invoice); // } else if (invoice.items[0]?.supportPlan) { @@ -565,8 +566,11 @@ export class InvoicesService { await queryRunner.manager.save(UserSupportPlan, userSupportPlan); await this.walletsService.createSupportPlanTransaction(invoice.totalPrice, userWallet.id, queryRunner); + await this.addNotifyForWalletDeduction(invoice, user, userWallet, WalletMessage.SUPPORT_PLAN_WALLET_TRANSFER); + // } else { await this.walletsService.createInvoiceTransaction(invoice.totalPrice, userWallet.id, queryRunner); + await this.addNotifyForWalletDeduction(invoice, user, userWallet, WalletMessage.INVOICE_WALLET_TRANSFER); } invoice.status = InvoiceStatus.PAID; invoice.paidAt = dayjs().toDate(); @@ -809,4 +813,16 @@ export class InvoicesService { }, ); } + //*********************************** */ + + private async addNotifyForWalletDeduction(invoice: Invoice, user: User, userWallet: Wallet, reason: string) { + await this.notificationQueue.addWalletDeductionNotification(user.id, { + amount: invoice.totalPrice.toNumber(), + balance: userWallet.balance.toNumber(), + reason, + date: dayjs().toDate(), + userPhone: user.phone, + userEmail: user.email, + }); + } } diff --git a/src/modules/notifications/queue/notification.queue.ts b/src/modules/notifications/queue/notification.queue.ts index 3385663..c627f59 100644 --- a/src/modules/notifications/queue/notification.queue.ts +++ b/src/modules/notifications/queue/notification.queue.ts @@ -78,6 +78,8 @@ export class NotificationQueue { await this.addNotificationJob(NotifType.CREATE_INVOICE, recipientId, data); } + //TODO:USE THIS + async addAnnouncementNotification(recipientId: string, data: IAnnouncementNotificationData) { await this.addNotificationJob(NotifType.ANNOUNCEMENT, recipientId, data); } @@ -85,6 +87,7 @@ export class NotificationQueue { async addWalletChargeNotification(recipientId: string, data: IWalletNotificationData) { await this.addNotificationJob(NotifType.WALLET_CHARGE, recipientId, data); } + //TODO:USER THIS async addWalletDeductionNotification(recipientId: string, data: IWalletNotificationData) { await this.addNotificationJob(NotifType.WALLET_DEDUCTION, recipientId, data);