import { MigrationInterface, QueryRunner } from "typeorm";

export class Migrations1738848608290 implements MigrationInterface {
    name = 'Migrations1738848608290'

    public async up(queryRunner: QueryRunner): Promise<void> {
        await queryRunner.query(`CREATE TABLE "influencer_save_campaigns" ("id" uuid NOT NULL DEFAULT uuid_generate_v4(), "createdAt" TIMESTAMP NOT NULL DEFAULT now(), "campaign_id" uuid, "influencer_id" uuid, CONSTRAINT "PK_845fc7bb27c3c0b0a3f382abca6" PRIMARY KEY ("id"))`);
        await queryRunner.query(`ALTER TABLE "influencer_save_campaigns" DROP COLUMN "campaign_id"`);
        await queryRunner.query(`ALTER TABLE "influencer_save_campaigns" DROP COLUMN "influencer_id"`);
        await queryRunner.query(`ALTER TABLE "influencer_save_campaigns" ADD "campaign_id" uuid`);
        await queryRunner.query(`ALTER TABLE "influencer_save_campaigns" ADD "influencer_id" uuid`);
        await queryRunner.query(`ALTER TABLE "influencer_save_campaigns" ADD "campaignId" uuid`);
        await queryRunner.query(`ALTER TABLE "influencer_save_campaigns" ADD "influencerId" uuid`);
        await queryRunner.query(`ALTER TABLE "influencer_save_campaigns" ADD CONSTRAINT "FK_f26b80bf8d31afbad07a8bde430" FOREIGN KEY ("campaign_id") REFERENCES "campaigns"("id") ON DELETE CASCADE ON UPDATE NO ACTION`);
        await queryRunner.query(`ALTER TABLE "influencer_save_campaigns" ADD CONSTRAINT "FK_fd383842bbfb2dac55a95f55d12" FOREIGN KEY ("influencer_id") REFERENCES "users"("id") ON DELETE CASCADE ON UPDATE NO ACTION`);
        await queryRunner.query(`ALTER TABLE "influencer_save_campaigns" ADD CONSTRAINT "FK_047090a051251d02197d84a3c57" FOREIGN KEY ("campaignId") REFERENCES "campaigns"("id") ON DELETE CASCADE ON UPDATE NO ACTION`);
        await queryRunner.query(`ALTER TABLE "influencer_save_campaigns" ADD CONSTRAINT "FK_4c317a9a42b37f1391156b943d3" FOREIGN KEY ("influencerId") REFERENCES "users"("id") ON DELETE CASCADE ON UPDATE NO ACTION`);
    }

    public async down(queryRunner: QueryRunner): Promise<void> {
        await queryRunner.query(`ALTER TABLE "influencer_save_campaigns" DROP CONSTRAINT "FK_4c317a9a42b37f1391156b943d3"`);
        await queryRunner.query(`ALTER TABLE "influencer_save_campaigns" DROP CONSTRAINT "FK_047090a051251d02197d84a3c57"`);
        await queryRunner.query(`ALTER TABLE "influencer_save_campaigns" DROP CONSTRAINT "FK_fd383842bbfb2dac55a95f55d12"`);
        await queryRunner.query(`ALTER TABLE "influencer_save_campaigns" DROP CONSTRAINT "FK_f26b80bf8d31afbad07a8bde430"`);
        await queryRunner.query(`ALTER TABLE "influencer_save_campaigns" DROP COLUMN "influencerId"`);
        await queryRunner.query(`ALTER TABLE "influencer_save_campaigns" DROP COLUMN "campaignId"`);
        await queryRunner.query(`ALTER TABLE "influencer_save_campaigns" DROP COLUMN "influencer_id"`);
        await queryRunner.query(`ALTER TABLE "influencer_save_campaigns" DROP COLUMN "campaign_id"`);
        await queryRunner.query(`ALTER TABLE "influencer_save_campaigns" ADD "influencer_id" uuid`);
        await queryRunner.query(`ALTER TABLE "influencer_save_campaigns" ADD "campaign_id" uuid`);
        await queryRunner.query(`DROP TABLE "influencer_save_campaigns"`);
    }

}
