From 6c1f8d6358b0a53af1992b09115f08bcec02260a Mon Sep 17 00:00:00 2001 From: mahyargdz Date: Thu, 21 Aug 2025 09:12:49 +0330 Subject: [PATCH] feat: pay the free subscriptiuon if present in subscribe to plan --- .../subscriptions/providers/subscriptions.service.ts | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/modules/subscriptions/providers/subscriptions.service.ts b/src/modules/subscriptions/providers/subscriptions.service.ts index 493fc12..89a88c3 100755 --- a/src/modules/subscriptions/providers/subscriptions.service.ts +++ b/src/modules/subscriptions/providers/subscriptions.service.ts @@ -210,6 +210,8 @@ export class SubscriptionsService { async subscribeToPlan(serviceId: string, subscribeDto: SubscribeServiceDto, userId: string) { const queryRunner = this.dataSource.createQueryRunner(); + + let isFree = false; try { await queryRunner.connect(); await queryRunner.startTransaction(); @@ -226,6 +228,7 @@ export class SubscriptionsService { if (!plan) throw new BadRequestException(SubscriptionMessage.NOT_FOUND); if (plan.isFree) { + isFree = true; const oneMonthAgo = dayjs().subtract(1, "month").toDate(); const existingFreePlanSubscription = await queryRunner.manager.findOne(UserSubscription, { where: { @@ -279,6 +282,10 @@ export class SubscriptionsService { await this.addProvisioningJob(userSubscription, plan, user); + if (isFree) { + await this.invoicesService.payInvoice(invoice.id, user.id, queryRunner); + } + await queryRunner.commitTransaction(); return { message: SubscriptionMessage.SUBSCRIBED,