import { MigrationInterface, QueryRunner } from "typeorm";

export class Migrations1729677716721 implements MigrationInterface {
    name = 'Migrations1729677716721'

    public async up(queryRunner: QueryRunner): Promise<void> {
        await queryRunner.query(`CREATE TYPE "public"."settings_type_enum" AS ENUM('facebook_followers_count', 'instagram_followers_count', 'tiktok_followers_count', 'youtube_subscriber_count')`);
        await queryRunner.query(`CREATE TABLE "settings" ("id" uuid NOT NULL DEFAULT uuid_generate_v4(), "type" "public"."settings_type_enum" NOT NULL DEFAULT 'facebook_followers_count', "value" character varying, "name" character varying, "created_at" TIMESTAMP(0) NOT NULL DEFAULT now(), "updated_at" TIMESTAMP(0) NOT NULL DEFAULT now(), "deleted_at" TIMESTAMP(0), CONSTRAINT "PK_0669fe20e252eb692bf4d344975" PRIMARY KEY ("id"))`);
        await queryRunner.query(`ALTER TYPE "public"."configurations_type_enum" RENAME TO "configurations_type_enum_old"`);
        await queryRunner.query(`CREATE TYPE "public"."configurations_type_enum" AS ENUM('smtp')`);
        await queryRunner.query(`ALTER TABLE "configurations" ALTER COLUMN "type" DROP DEFAULT`);
        await queryRunner.query(`ALTER TABLE "configurations" ALTER COLUMN "type" TYPE "public"."configurations_type_enum" USING "type"::"text"::"public"."configurations_type_enum"`);
        await queryRunner.query(`ALTER TABLE "configurations" ALTER COLUMN "type" SET DEFAULT 'smtp'`);
        await queryRunner.query(`DROP TYPE "public"."configurations_type_enum_old"`);
    }

    public async down(queryRunner: QueryRunner): Promise<void> {
        await queryRunner.query(`CREATE TYPE "public"."configurations_type_enum_old" AS ENUM('facebook_followers_count', 'instagram_followers_count', 'tiktok_followers_count', 'youtube_subscriber_count')`);
        await queryRunner.query(`ALTER TABLE "configurations" ALTER COLUMN "type" DROP DEFAULT`);
        await queryRunner.query(`ALTER TABLE "configurations" ALTER COLUMN "type" TYPE "public"."configurations_type_enum_old" USING "type"::"text"::"public"."configurations_type_enum_old"`);
        await queryRunner.query(`ALTER TABLE "configurations" ALTER COLUMN "type" SET DEFAULT 'facebook_followers_count'`);
        await queryRunner.query(`DROP TYPE "public"."configurations_type_enum"`);
        await queryRunner.query(`ALTER TYPE "public"."configurations_type_enum_old" RENAME TO "configurations_type_enum"`);
        await queryRunner.query(`DROP TABLE "settings"`);
        await queryRunner.query(`DROP TYPE "public"."settings_type_enum"`);
    }

}
