import { MigrationInterface, QueryRunner } from "typeorm";

export class Migrations1738308752974 implements MigrationInterface {
    name = 'Migrations1738308752974'

    public async up(queryRunner: QueryRunner): Promise<void> {
        await queryRunner.query(`ALTER TABLE "posts" ADD "view_counts" bigint NOT NULL DEFAULT '0'`);
        await queryRunner.query(`ALTER TABLE "posts" ADD "like_counts" bigint NOT NULL DEFAULT '0'`);
        await queryRunner.query(`ALTER TABLE "posts" ADD "comment_count" bigint NOT NULL DEFAULT '0'`);
        await queryRunner.query(`ALTER TABLE "posts" ADD "social_post_id" character varying`);
        await queryRunner.query(`ALTER TABLE "posts" ADD "social_media_id" uuid`);
        await queryRunner.query(`ALTER TABLE "posts" ADD CONSTRAINT "FK_196c4a109204faafad54cebf34c" FOREIGN KEY ("social_media_id") REFERENCES "social_medias"("id") ON DELETE CASCADE ON UPDATE NO ACTION`);
    }

    public async down(queryRunner: QueryRunner): Promise<void> {
        await queryRunner.query(`ALTER TABLE "posts" DROP CONSTRAINT "FK_196c4a109204faafad54cebf34c"`);
        await queryRunner.query(`ALTER TABLE "posts" DROP COLUMN "social_media_id"`);
        await queryRunner.query(`ALTER TABLE "posts" DROP COLUMN "social_post_id"`);
        await queryRunner.query(`ALTER TABLE "posts" DROP COLUMN "comment_count"`);
        await queryRunner.query(`ALTER TABLE "posts" DROP COLUMN "like_counts"`);
        await queryRunner.query(`ALTER TABLE "posts" DROP COLUMN "view_counts"`);
    }

}
