import { MigrationInterface, QueryRunner } from "typeorm";

export class Migrations1749728636602 implements MigrationInterface {
    name = 'Migrations1749728636602'

    public async up(queryRunner: QueryRunner): Promise<void> {
        await queryRunner.query(`ALTER TYPE "public"."subscription-history_status_enum" RENAME TO "subscription-history_status_enum_old"`);
        await queryRunner.query(`CREATE TYPE "public"."subscription-history_status_enum" AS ENUM('pending', 'active', 'incomplete', 'past_due', 'canceled', 'unpaid', 'upcoming')`);
        await queryRunner.query(`ALTER TABLE "subscription-history" ALTER COLUMN "status" DROP DEFAULT`);
        await queryRunner.query(`ALTER TABLE "subscription-history" ALTER COLUMN "status" TYPE "public"."subscription-history_status_enum" USING "status"::"text"::"public"."subscription-history_status_enum"`);
        await queryRunner.query(`ALTER TABLE "subscription-history" ALTER COLUMN "status" SET DEFAULT 'pending'`);
        await queryRunner.query(`DROP TYPE "public"."subscription-history_status_enum_old"`);
    }

    public async down(queryRunner: QueryRunner): Promise<void> {
        await queryRunner.query(`CREATE TYPE "public"."subscription-history_status_enum_old" AS ENUM('pending', 'active', 'incomplete', 'past_due', 'canceled', 'unpaid')`);
        await queryRunner.query(`ALTER TABLE "subscription-history" ALTER COLUMN "status" DROP DEFAULT`);
        await queryRunner.query(`ALTER TABLE "subscription-history" ALTER COLUMN "status" TYPE "public"."subscription-history_status_enum_old" USING "status"::"text"::"public"."subscription-history_status_enum_old"`);
        await queryRunner.query(`ALTER TABLE "subscription-history" ALTER COLUMN "status" SET DEFAULT 'pending'`);
        await queryRunner.query(`DROP TYPE "public"."subscription-history_status_enum"`);
        await queryRunner.query(`ALTER TYPE "public"."subscription-history_status_enum_old" RENAME TO "subscription-history_status_enum"`);
    }

}
