From 00f96f6b33223e3bd9dbe206e36373659e182391 Mon Sep 17 00:00:00 2001 From: morteza-mortezai Date: Mon, 2 Feb 2026 12:26:45 +0330 Subject: [PATCH] fix : bug in extend sub --- database/migrations/1770014482427-addSlugToPlan.ts | 14 ++++++++++++++ database/migrations/1770014896464-addSlugToPlan.ts | 14 ++++++++++++++ src/modules/invoices/providers/invoices.service.ts | 4 ++-- .../subscriptions/entities/subscription.entity.ts | 3 +++ 4 files changed, 33 insertions(+), 2 deletions(-) create mode 100644 database/migrations/1770014482427-addSlugToPlan.ts create mode 100644 database/migrations/1770014896464-addSlugToPlan.ts diff --git a/database/migrations/1770014482427-addSlugToPlan.ts b/database/migrations/1770014482427-addSlugToPlan.ts new file mode 100644 index 0000000..dadf591 --- /dev/null +++ b/database/migrations/1770014482427-addSlugToPlan.ts @@ -0,0 +1,14 @@ +import { MigrationInterface, QueryRunner } from "typeorm"; + +export class AddSlugToPlan1770014482427 implements MigrationInterface { + name = 'AddSlugToPlan1770014482427' + + public async up(queryRunner: QueryRunner): Promise { + await queryRunner.query(`ALTER TABLE "invoice" ALTER COLUMN "purpose" DROP DEFAULT`); + } + + public async down(queryRunner: QueryRunner): Promise { + await queryRunner.query(`ALTER TABLE "invoice" ALTER COLUMN "purpose" SET DEFAULT 'new'`); + } + +} diff --git a/database/migrations/1770014896464-addSlugToPlan.ts b/database/migrations/1770014896464-addSlugToPlan.ts new file mode 100644 index 0000000..9de61bb --- /dev/null +++ b/database/migrations/1770014896464-addSlugToPlan.ts @@ -0,0 +1,14 @@ +import { MigrationInterface, QueryRunner } from "typeorm"; + +export class AddSlugToPlan1770014896464 implements MigrationInterface { + name = 'AddSlugToPlan1770014896464' + + public async up(queryRunner: QueryRunner): Promise { + await queryRunner.query(`ALTER TABLE "subscription_plan" ADD "slug" character varying(150)`); + } + + public async down(queryRunner: QueryRunner): Promise { + await queryRunner.query(`ALTER TABLE "subscription_plan" DROP COLUMN "slug"`); + } + +} diff --git a/src/modules/invoices/providers/invoices.service.ts b/src/modules/invoices/providers/invoices.service.ts index 1ea4985..5490e19 100755 --- a/src/modules/invoices/providers/invoices.service.ts +++ b/src/modules/invoices/providers/invoices.service.ts @@ -818,7 +818,7 @@ export class InvoicesService { await this.scheduleNextRenewalJob(userSubscription); // Call external API for dmenu service upgrades - if (upgradePlan.service.name.toLowerCase().includes('dmenu') || upgradePlan.service.slug?.toLowerCase().includes('dmenu')) { + if (upgradePlan.service.slug?.toLowerCase().includes('dmenu')) { try { this.logger.log(`Calling external API for dmenu upgrade: subscription ${userSubscription.id}`); const dmenuPlan = upgradePlan.name.includes("دلیوری") ? "premium" : "base"; @@ -850,7 +850,7 @@ export class InvoicesService { await this.scheduleNextRenewalJob(userSubscription); // Call external API for dmenu service upgrades - if (userSubscription.plan.service.name.toLowerCase().includes('dmenu') || userSubscription.plan.service.slug?.toLowerCase().includes('dmenu')) { + if (userSubscription.plan.service.slug?.toLowerCase().includes('dmenu')) { try { this.logger.log(`Calling external API for dmenu upgrade: subscription ${userSubscription.id}`); const dmenuPlan = userSubscription.plan.name.includes("دلیوری") ? "premium" : "base"; diff --git a/src/modules/subscriptions/entities/subscription.entity.ts b/src/modules/subscriptions/entities/subscription.entity.ts index 3b4d956..4ef88e6 100755 --- a/src/modules/subscriptions/entities/subscription.entity.ts +++ b/src/modules/subscriptions/entities/subscription.entity.ts @@ -13,6 +13,9 @@ export class SubscriptionPlan extends BaseEntity { @Column({ type: "varchar", length: 150, nullable: false }) name: string; + @Column({ type: "varchar", length: 150, nullable: true }) + slug?: string; + @Column({ type: "int", nullable: false }) duration: number;