import { MigrationInterface, QueryRunner } from "typeorm";

export class Migrations1751874636708 implements MigrationInterface {
    name = 'Migrations1751874636708'

    public async up(queryRunner: QueryRunner): Promise<void> {
        await queryRunner.query(`ALTER TABLE "plans" ADD "most_popular" boolean NOT NULL DEFAULT false`);
        await queryRunner.query(`ALTER TABLE "plans" ADD "trial_days" integer NOT NULL DEFAULT '0'`);
        await queryRunner.query(`ALTER TABLE "plans" ADD "parent_plan_id" uuid`);
        await queryRunner.query(`ALTER TABLE "plans" ADD CONSTRAINT "UQ_d753c9d91b66b123f7178be4a6b" UNIQUE ("parent_plan_id")`);
        await queryRunner.query(`ALTER TABLE "plans" ADD "discount_label" character varying(255)`);
        await queryRunner.query(`ALTER TABLE "plans" ADD CONSTRAINT "FK_d753c9d91b66b123f7178be4a6b" FOREIGN KEY ("parent_plan_id") REFERENCES "plans"("id") ON DELETE SET NULL ON UPDATE NO ACTION`);
    }

    public async down(queryRunner: QueryRunner): Promise<void> {
        await queryRunner.query(`ALTER TABLE "plans" DROP CONSTRAINT "FK_d753c9d91b66b123f7178be4a6b"`);
        await queryRunner.query(`ALTER TABLE "plans" DROP COLUMN "discount_label"`);
        await queryRunner.query(`ALTER TABLE "plans" DROP CONSTRAINT "UQ_d753c9d91b66b123f7178be4a6b"`);
        await queryRunner.query(`ALTER TABLE "plans" DROP COLUMN "parent_plan_id"`);
        await queryRunner.query(`ALTER TABLE "plans" DROP COLUMN "trial_days"`);
        await queryRunner.query(`ALTER TABLE "plans" DROP COLUMN "most_popular"`);
    }

}
