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,