import { MigrationInterface, QueryRunner } from "typeorm";

export class Migrations1781506601456 implements MigrationInterface {
    name = 'Migrations1781506601456'

    public async up(queryRunner: QueryRunner): Promise<void> {
        await queryRunner.query(`CREATE TABLE "campaign_category_country_order" ("id" uuid NOT NULL DEFAULT uuid_generate_v4(), "order_by" integer NOT NULL DEFAULT '1', "created_at" TIMESTAMP(0) NOT NULL DEFAULT now(), "updated_at" TIMESTAMP(0) NOT NULL DEFAULT now(), "deleted_at" TIMESTAMP(0), "country_id" uuid NOT NULL, "campaign_category_id" uuid NOT NULL, CONSTRAINT "UQ_campaign_category_country_order" UNIQUE ("country_id", "campaign_category_id"), CONSTRAINT "PK_campaign_category_country_order" PRIMARY KEY ("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`);
    }

    public async down(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(`DROP TABLE "campaign_category_country_order"`);
    }

}
