chore: add wallet deduct notification
This commit is contained in:
@@ -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,
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user