import { MigrationInterface, QueryRunner } from "typeorm";

export class Migrations1741334040119 implements MigrationInterface {
    name = 'Migrations1741334040119'

    public async up(queryRunner: QueryRunner): Promise<void> {
        await queryRunner.query(`CREATE TABLE "campaign_recommended" ("id" uuid NOT NULL DEFAULT uuid_generate_v4(), "is_admin_recommended" boolean NOT NULL DEFAULT false, "createdAt" TIMESTAMP NOT NULL DEFAULT now(), "updatedAt" TIMESTAMP NOT NULL DEFAULT now(), "campaign_id" uuid, "influencer_id" uuid, CONSTRAINT "PK_2ea8a97e5dc146b4d99abb981a7" PRIMARY KEY ("id"))`);
        await queryRunner.query(`ALTER TABLE "campaigns" ADD "recommended_date_time" TIMESTAMP`);
        await queryRunner.query(`ALTER TABLE "campaign_recommended" ADD CONSTRAINT "FK_cb07a514068c825840507ea1951" FOREIGN KEY ("campaign_id") REFERENCES "campaigns"("id") ON DELETE CASCADE ON UPDATE NO ACTION`);
        await queryRunner.query(`ALTER TABLE "campaign_recommended" ADD CONSTRAINT "FK_aef5bc59a545ec1e503870279dd" FOREIGN KEY ("influencer_id") REFERENCES "users"("id") ON DELETE NO ACTION ON UPDATE NO ACTION`);
    }

    public async down(queryRunner: QueryRunner): Promise<void> {
        await queryRunner.query(`ALTER TABLE "campaign_recommended" DROP CONSTRAINT "FK_aef5bc59a545ec1e503870279dd"`);
        await queryRunner.query(`ALTER TABLE "campaign_recommended" DROP CONSTRAINT "FK_cb07a514068c825840507ea1951"`);
        await queryRunner.query(`ALTER TABLE "campaigns" DROP COLUMN "recommended_date_time"`);
        await queryRunner.query(`DROP TABLE "campaign_recommended"`);
    }

}
