import { MigrationInterface, QueryRunner } from "typeorm";

export class Migrations1787310375258 implements MigrationInterface {
    name = 'Migrations1787310375258'

    public async up(queryRunner: QueryRunner): Promise<void> {
        // await queryRunner.query(`ALTER TABLE "campaign_influencers" DROP COLUMN "recommended_score"`);
        // await queryRunner.query(`ALTER TABLE "campaign_influencers" DROP COLUMN "ai_score"`);
        // await queryRunner.query(`ALTER TABLE "campaign_influencers" DROP COLUMN "ai_score_pending"`);
        // await queryRunner.query(`ALTER TABLE "campaign_influencers" DROP COLUMN "ai_note"`);
        // await queryRunner.query(`COMMENT ON COLUMN "social_medias"."instagram_insights_synced_at" IS 'LAST INSTAGRAM INSIGHTS CRON EXECUTION DATE'`);
        await queryRunner.query(`ALTER TYPE "public"."campaign_payments_payment_mode_enum" RENAME TO "campaign_payments_payment_mode_enum_old"`);
        await queryRunner.query(`CREATE TYPE "public"."campaign_payments_payment_mode_enum" AS ENUM('offline', 'online', 'force_offline')`);
        await queryRunner.query(`ALTER TABLE "campaign_payments" ALTER COLUMN "payment_mode" DROP DEFAULT`);
        await queryRunner.query(`ALTER TABLE "campaign_payments" ALTER COLUMN "payment_mode" TYPE "public"."campaign_payments_payment_mode_enum" USING "payment_mode"::"text"::"public"."campaign_payments_payment_mode_enum"`);
        await queryRunner.query(`ALTER TABLE "campaign_payments" ALTER COLUMN "payment_mode" SET DEFAULT 'online'`);
        await queryRunner.query(`DROP TYPE "public"."campaign_payments_payment_mode_enum_old"`);
    }

    public async down(queryRunner: QueryRunner): Promise<void> {
        await queryRunner.query(`CREATE TYPE "public"."campaign_payments_payment_mode_enum_old" AS ENUM('offline', 'online')`);
        await queryRunner.query(`ALTER TABLE "campaign_payments" ALTER COLUMN "payment_mode" DROP DEFAULT`);
        await queryRunner.query(`ALTER TABLE "campaign_payments" ALTER COLUMN "payment_mode" TYPE "public"."campaign_payments_payment_mode_enum_old" USING "payment_mode"::"text"::"public"."campaign_payments_payment_mode_enum_old"`);
        await queryRunner.query(`ALTER TABLE "campaign_payments" ALTER COLUMN "payment_mode" SET DEFAULT 'online'`);
        await queryRunner.query(`DROP TYPE "public"."campaign_payments_payment_mode_enum"`);
        await queryRunner.query(`ALTER TYPE "public"."campaign_payments_payment_mode_enum_old" RENAME TO "campaign_payments_payment_mode_enum"`);
        await queryRunner.query(`COMMENT ON COLUMN "social_medias"."instagram_insights_synced_at" IS NULL`);
        await queryRunner.query(`ALTER TABLE "campaign_influencers" ADD "ai_note" text`);
        await queryRunner.query(`ALTER TABLE "campaign_influencers" ADD "ai_score_pending" boolean NOT NULL DEFAULT true`);
        await queryRunner.query(`ALTER TABLE "campaign_influencers" ADD "ai_score" numeric(10,2)`);
        await queryRunner.query(`ALTER TABLE "campaign_influencers" ADD "recommended_score" numeric(10,2) NOT NULL DEFAULT '0'`);
    }

}
