import { MigrationInterface, QueryRunner } from "typeorm";

export class Migrations1742364923105 implements MigrationInterface {
    name = 'Migrations1742364923105'

    public async up(queryRunner: QueryRunner): Promise<void> {
        await queryRunner.query(`ALTER TABLE "user_permissions" ADD "time_period" character varying(255)`);
        await queryRunner.query(`ALTER TABLE "user_permissions" ADD "expires_at" TIMESTAMP`);
        await queryRunner.query(`ALTER TABLE "user_permissions" ADD "subscriptionId" uuid`);
        await queryRunner.query(`ALTER TABLE "youtube_channels" ALTER COLUMN "engagement_rate" SET DEFAULT '0.0000'`);
        await queryRunner.query(`ALTER TABLE "facebook_pages" ALTER COLUMN "engagement_rate" SET DEFAULT '0.0000'`);
        await queryRunner.query(`ALTER TABLE "instagram_profiles" ALTER COLUMN "engagement_rate" SET DEFAULT '0.0000'`);
        await queryRunner.query(`ALTER TABLE "tiktok_profiles" ALTER COLUMN "engagement_rate" SET DEFAULT '0.0000'`);
        await queryRunner.query(`ALTER TABLE "user_permissions" ADD CONSTRAINT "FK_5b925acb0048d308e971435ffcf" FOREIGN KEY ("subscriptionId") REFERENCES "subscription"("id") ON DELETE NO ACTION ON UPDATE NO ACTION`);
    }

    public async down(queryRunner: QueryRunner): Promise<void> {
        await queryRunner.query(`ALTER TABLE "user_permissions" DROP CONSTRAINT "FK_5b925acb0048d308e971435ffcf"`);
        await queryRunner.query(`ALTER TABLE "tiktok_profiles" ALTER COLUMN "engagement_rate" SET DEFAULT 0.0000`);
        await queryRunner.query(`ALTER TABLE "instagram_profiles" ALTER COLUMN "engagement_rate" SET DEFAULT 0.0000`);
        await queryRunner.query(`ALTER TABLE "facebook_pages" ALTER COLUMN "engagement_rate" SET DEFAULT 0.0000`);
        await queryRunner.query(`ALTER TABLE "youtube_channels" ALTER COLUMN "engagement_rate" SET DEFAULT 0.0000`);
        await queryRunner.query(`ALTER TABLE "user_permissions" DROP COLUMN "subscriptionId"`);
        await queryRunner.query(`ALTER TABLE "user_permissions" DROP COLUMN "expires_at"`);
        await queryRunner.query(`ALTER TABLE "user_permissions" DROP COLUMN "time_period"`);
    }

}
