import { MigrationInterface, QueryRunner } from "typeorm";

export class Migrations1734349447315 implements MigrationInterface {
    name = 'Migrations1734349447315'

    public async up(queryRunner: QueryRunner): Promise<void> {
        await queryRunner.query(`CREATE TABLE "keywords" ("id" uuid NOT NULL DEFAULT uuid_generate_v4(), "keyword" character varying NOT NULL, "created_at" TIMESTAMP(0) NOT NULL DEFAULT now(), CONSTRAINT "PK_4aa660a7a585ed828da68f3c28e" PRIMARY KEY ("id"))`);
        await queryRunner.query(`CREATE TABLE "user_keywords" ("id" uuid NOT NULL DEFAULT uuid_generate_v4(), "created_at" TIMESTAMP(0) NOT NULL DEFAULT now(), "usersId" uuid, "keywordsId" uuid, CONSTRAINT "PK_d4ad1f5371a72cea24384a9a6d2" PRIMARY KEY ("id"))`);
        await queryRunner.query(`ALTER TABLE "user_keywords" ADD CONSTRAINT "FK_7ff5da2f75823d1038e7193eb33" FOREIGN KEY ("usersId") REFERENCES "users"("id") ON DELETE NO ACTION ON UPDATE NO ACTION`);
        await queryRunner.query(`ALTER TABLE "user_keywords" ADD CONSTRAINT "FK_1e6dbfb5ebc572f903de060d6bf" FOREIGN KEY ("keywordsId") REFERENCES "keywords"("id") ON DELETE NO ACTION ON UPDATE NO ACTION`);
    }

    public async down(queryRunner: QueryRunner): Promise<void> {
        await queryRunner.query(`ALTER TABLE "user_keywords" DROP CONSTRAINT "FK_1e6dbfb5ebc572f903de060d6bf"`);
        await queryRunner.query(`ALTER TABLE "user_keywords" DROP CONSTRAINT "FK_7ff5da2f75823d1038e7193eb33"`);
        await queryRunner.query(`DROP TABLE "user_keywords"`);
        await queryRunner.query(`DROP TABLE "keywords"`);
    }

}
