import { MigrationInterface, QueryRunner } from "typeorm";

export class Migrations1742799528646 implements MigrationInterface {
    name = 'Migrations1742799528646'

    public async up(queryRunner: QueryRunner): Promise<void> {
        // TEST TEST
        await queryRunner.query(`ALTER TABLE "plans" DROP COLUMN "price_response"`);
        await queryRunner.query(`ALTER TABLE "plans" DROP COLUMN "amount"`);
        await queryRunner.query(`ALTER TABLE "plans" DROP COLUMN "price_id"`);
        await queryRunner.query(`ALTER TABLE "plans" ADD "year_price_id" character varying(255)`);
        await queryRunner.query(`ALTER TABLE "plans" ADD "month_price_id" character varying(255)`);
        await queryRunner.query(`ALTER TABLE "plans" ADD "year_price_response" jsonb`);
        await queryRunner.query(`ALTER TABLE "plans" ADD "month_price_response" jsonb`);
        await queryRunner.query(`ALTER TABLE "plans" ADD "year_amount" numeric(10,2) NOT NULL DEFAULT '0'`);
        await queryRunner.query(`ALTER TABLE "plans" ADD "month_amount" numeric(10,2) NOT NULL DEFAULT '0'`);
        await queryRunner.query(`CREATE TYPE "public"."subscription_interval_enum" AS ENUM('month', 'year')`);
        await queryRunner.query(`ALTER TABLE "subscription" ADD "interval" "public"."subscription_interval_enum" NOT NULL DEFAULT 'month'`);
        await queryRunner.query(`ALTER TABLE "subscription" ADD "amount" numeric(10,2) NOT NULL DEFAULT '0'`);
    }

    public async down(queryRunner: QueryRunner): Promise<void> {
        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 "subscription" DROP COLUMN "amount"`);
        await queryRunner.query(`ALTER TABLE "subscription" DROP COLUMN "interval"`);
        await queryRunner.query(`DROP TYPE "public"."subscription_interval_enum"`);
        await queryRunner.query(`ALTER TABLE "plans" DROP COLUMN "month_amount"`);
        await queryRunner.query(`ALTER TABLE "plans" DROP COLUMN "year_amount"`);
        await queryRunner.query(`ALTER TABLE "plans" DROP COLUMN "month_price_response"`);
        await queryRunner.query(`ALTER TABLE "plans" DROP COLUMN "year_price_response"`);
        await queryRunner.query(`ALTER TABLE "plans" DROP COLUMN "month_price_id"`);
        await queryRunner.query(`ALTER TABLE "plans" DROP COLUMN "year_price_id"`);
        await queryRunner.query(`ALTER TABLE "plans" ADD "price_id" character varying(255)`);
        await queryRunner.query(`ALTER TABLE "plans" ADD "amount" numeric(10,2) NOT NULL DEFAULT '0'`);
        await queryRunner.query(`ALTER TABLE "plans" ADD "price_response" jsonb`);
    }

}
