import { MigrationInterface, QueryRunner } from "typeorm";

export class Migrations1741346498718 implements MigrationInterface {
    name = 'Migrations1741346498718'

    public async up(queryRunner: QueryRunner): Promise<void> {
        await queryRunner.query(`CREATE TABLE "influencer_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_3a0dc9281042d16313607010a60" PRIMARY KEY ("id"))`);
        await queryRunner.query(`ALTER TABLE "users" ADD "recommended_date_time" TIMESTAMP`);
        await queryRunner.query(`ALTER TABLE "influencer_campaign_recommended" ADD CONSTRAINT "FK_e805c55b4d1667d81c70a63bc4d" FOREIGN KEY ("campaign_id") REFERENCES "campaigns"("id") ON DELETE CASCADE ON UPDATE NO ACTION`);
        await queryRunner.query(`ALTER TABLE "influencer_campaign_recommended" ADD CONSTRAINT "FK_97126161ed23c25299682e8f323" FOREIGN KEY ("influencer_id") REFERENCES "users"("id") ON DELETE CASCADE ON UPDATE NO ACTION`);
    }

    public async down(queryRunner: QueryRunner): Promise<void> {
        await queryRunner.query(`ALTER TABLE "influencer_campaign_recommended" DROP CONSTRAINT "FK_97126161ed23c25299682e8f323"`);
        await queryRunner.query(`ALTER TABLE "influencer_campaign_recommended" DROP CONSTRAINT "FK_e805c55b4d1667d81c70a63bc4d"`);
        await queryRunner.query(`ALTER TABLE "users" DROP COLUMN "recommended_date_time"`);
        await queryRunner.query(`DROP TABLE "influencer_campaign_recommended"`);
    }

}
