import { MigrationInterface, QueryRunner } from "typeorm";

export class Migrations1736155004955 implements MigrationInterface {
    name = 'Migrations1736155004955'

    public async up(queryRunner: QueryRunner): Promise<void> {
        await queryRunner.query(`ALTER TYPE "public"."file_managers_status_enum" RENAME TO "file_managers_status_enum_old"`);
        await queryRunner.query(`CREATE TYPE "public"."file_managers_status_enum" AS ENUM('pending', 'completed', 'failed')`);
        await queryRunner.query(`ALTER TABLE "file_managers" ALTER COLUMN "status" DROP DEFAULT`);
        await queryRunner.query(`ALTER TABLE "file_managers" ALTER COLUMN "status" TYPE "public"."file_managers_status_enum" USING "status"::"text"::"public"."file_managers_status_enum"`);
        await queryRunner.query(`ALTER TABLE "file_managers" ALTER COLUMN "status" SET DEFAULT 'pending'`);
        await queryRunner.query(`DROP TYPE "public"."file_managers_status_enum_old"`);
    }

    public async down(queryRunner: QueryRunner): Promise<void> {
        await queryRunner.query(`CREATE TYPE "public"."file_managers_status_enum_old" AS ENUM('pending', 'completed')`);
        await queryRunner.query(`ALTER TABLE "file_managers" ALTER COLUMN "status" DROP DEFAULT`);
        await queryRunner.query(`ALTER TABLE "file_managers" ALTER COLUMN "status" TYPE "public"."file_managers_status_enum_old" USING "status"::"text"::"public"."file_managers_status_enum_old"`);
        await queryRunner.query(`ALTER TABLE "file_managers" ALTER COLUMN "status" SET DEFAULT 'pending'`);
        await queryRunner.query(`DROP TYPE "public"."file_managers_status_enum"`);
        await queryRunner.query(`ALTER TYPE "public"."file_managers_status_enum_old" RENAME TO "file_managers_status_enum"`);
    }

}
