import { MigrationInterface, QueryRunner } from "typeorm";

export class Migrations1784554190701 implements MigrationInterface {
    name = 'Migrations1784554190701'

    public async up(queryRunner: QueryRunner): Promise<void> {
        //   await queryRunner.query(`ALTER TABLE "campaign_category_country_order" DROP CONSTRAINT "FK_campaign_category_country_order_campaign_category"`);
        //  await queryRunner.query(`ALTER TABLE "campaign_category_country_order" DROP CONSTRAINT "FK_campaign_category_country_order_country"`);
        //  await queryRunner.query(`ALTER TABLE "campaign_category_country_order" DROP CONSTRAINT "UQ_campaign_category_country_order"`);
        await queryRunner.query(`CREATE TABLE "instagram_insights" ("id" uuid NOT NULL DEFAULT uuid_generate_v4(), "metric" character varying, "period" character varying, "timeframe" character varying, "breakdown" character varying, "query_params" character varying, "response_json" jsonb, "created_at" TIMESTAMP(0) NOT NULL DEFAULT now(), "updated_at" TIMESTAMP(0) NOT NULL DEFAULT now(), "deleted_at" TIMESTAMP(0), "user_id" uuid, CONSTRAINT "PK_f7825c6408b99fa9c494190e552" PRIMARY KEY ("id"))`);
        await queryRunner.query(`CREATE INDEX "IDX_9d234fac1c92a4a29e3e0ec860" ON "instagram_insights" ("metric") `);
        await queryRunner.query(`CREATE INDEX "IDX_28a428e295542c42497eb177f8" ON "instagram_insights" ("period") `);
        await queryRunner.query(`CREATE INDEX "IDX_dbe8507544ff5cc9990f658499" ON "instagram_insights" ("timeframe") `);
        await queryRunner.query(`CREATE INDEX "IDX_c28d35805a55a291b84b7012d4" ON "instagram_insights" ("breakdown") `);
        await queryRunner.query(`CREATE INDEX "IDX_fedaff64375640925cb98ad122" ON "instagram_insights" ("query_params") `);
        //  await queryRunner.query(`ALTER TABLE "campaign_categories" DROP COLUMN "order_by"`);
        //  await queryRunner.query(`ALTER TABLE "campaigns" ALTER COLUMN "post_sync_cron_at" SET DEFAULT ('now'::text)::date`);
        //  await queryRunner.query(`ALTER TYPE "public"."user_notification_preferences_channel_enum" RENAME TO "user_notification_preferences_channel_enum_old"`);
        //  await queryRunner.query(`CREATE TYPE "public"."user_notification_preferences_channel_enum" AS ENUM('whatsapp_notification')`);
        //  await queryRunner.query(`ALTER TABLE "user_notification_preferences" ALTER COLUMN "channel" TYPE "public"."user_notification_preferences_channel_enum" USING "channel"::"text"::"public"."user_notification_preferences_channel_enum"`);
        //  await queryRunner.query(`DROP TYPE "public"."user_notification_preferences_channel_enum_old"`);
        //  await queryRunner.query(`ALTER TABLE "campaign_category_country_order" ADD CONSTRAINT "UQ_2141c99097f538b4ff0da3e7353" UNIQUE ("country_id", "campaign_category_id")`);
        await queryRunner.query(`ALTER TABLE "instagram_insights" ADD CONSTRAINT "FK_87c817623c71bde4ff4dfbaf3a9" FOREIGN KEY ("user_id") REFERENCES "users"("id") ON DELETE NO ACTION ON UPDATE NO ACTION`);
        //  await queryRunner.query(`ALTER TABLE "campaign_category_country_order" ADD CONSTRAINT "FK_3d1d2ade5c1d706c05461e38b2b" FOREIGN KEY ("country_id") REFERENCES "countries"("id") ON DELETE CASCADE ON UPDATE NO ACTION`);
        //  await queryRunner.query(`ALTER TABLE "campaign_category_country_order" ADD CONSTRAINT "FK_92de21229824fcbad4501958e20" FOREIGN KEY ("campaign_category_id") REFERENCES "campaign_categories"("id") ON DELETE CASCADE ON UPDATE NO ACTION`);
    }

    public async down(queryRunner: QueryRunner): Promise<void> {
        // await queryRunner.query(`ALTER TABLE "campaign_category_country_order" DROP CONSTRAINT "FK_92de21229824fcbad4501958e20"`);
        // await queryRunner.query(`ALTER TABLE "campaign_category_country_order" DROP CONSTRAINT "FK_3d1d2ade5c1d706c05461e38b2b"`);
        await queryRunner.query(`ALTER TABLE "instagram_insights" DROP CONSTRAINT "FK_87c817623c71bde4ff4dfbaf3a9"`);
        //await queryRunner.query(`ALTER TABLE "campaign_category_country_order" DROP CONSTRAINT "UQ_2141c99097f538b4ff0da3e7353"`);
        //await queryRunner.query(`CREATE TYPE "public"."user_notification_preferences_channel_enum_old" AS ENUM('whatsapp_notification', 'email_notification', 'notification')`);
        //await queryRunner.query(`ALTER TABLE "user_notification_preferences" ALTER COLUMN "channel" TYPE "public"."user_notification_preferences_channel_enum_old" USING "channel"::"text"::"public"."user_notification_preferences_channel_enum_old"`);
        //await queryRunner.query(`DROP TYPE "public"."user_notification_preferences_channel_enum"`);
        //await queryRunner.query(`ALTER TYPE "public"."user_notification_preferences_channel_enum_old" RENAME TO "user_notification_preferences_channel_enum"`);
        //await queryRunner.query(`ALTER TABLE "campaigns" ALTER COLUMN "post_sync_cron_at" SET DEFAULT CURRENT_DATE`);
        //await queryRunner.query(`ALTER TABLE "campaign_categories" ADD "order_by" integer NOT NULL DEFAULT '1'`);
        await queryRunner.query(`DROP INDEX "public"."IDX_fedaff64375640925cb98ad122"`);
        await queryRunner.query(`DROP INDEX "public"."IDX_c28d35805a55a291b84b7012d4"`);
        await queryRunner.query(`DROP INDEX "public"."IDX_dbe8507544ff5cc9990f658499"`);
        await queryRunner.query(`DROP INDEX "public"."IDX_28a428e295542c42497eb177f8"`);
        await queryRunner.query(`DROP INDEX "public"."IDX_9d234fac1c92a4a29e3e0ec860"`);
        await queryRunner.query(`DROP TABLE "instagram_insights"`);
        //await queryRunner.query(`ALTER TABLE "campaign_category_country_order" ADD CONSTRAINT "UQ_campaign_category_country_order" UNIQUE ("country_id", "campaign_category_id")`);
        //await queryRunner.query(`ALTER TABLE "campaign_category_country_order" ADD CONSTRAINT "FK_campaign_category_country_order_country" FOREIGN KEY ("country_id") REFERENCES "countries"("id") ON DELETE CASCADE ON UPDATE NO ACTION`);
        //await queryRunner.query(`ALTER TABLE "campaign_category_country_order" ADD CONSTRAINT "FK_campaign_category_country_order_campaign_category" FOREIGN KEY ("campaign_category_id") REFERENCES "campaign_categories"("id") ON DELETE CASCADE ON UPDATE NO ACTION`);
    }

}
