import { MigrationInterface, QueryRunner } from "typeorm";

export class Migrations1740132458668 implements MigrationInterface {
    name = 'Migrations1740132458668'

    public async up(queryRunner: QueryRunner): Promise<void> {
        await queryRunner.query(`ALTER TABLE "campaign_payments" RENAME COLUMN "transaction_fee" TO "exchange_rate"`);
        await queryRunner.query(`ALTER TABLE "posts" DROP COLUMN "created_at"`);
        await queryRunner.query(`ALTER TABLE "posts" ADD "created_at" TIMESTAMP(0) WITH TIME ZONE NOT NULL DEFAULT now()`);
        await queryRunner.query(`ALTER TABLE "posts" DROP COLUMN "updated_at"`);
        await queryRunner.query(`ALTER TABLE "posts" ADD "updated_at" TIMESTAMP(0) WITH TIME ZONE NOT NULL DEFAULT now()`);
        await queryRunner.query(`ALTER TABLE "posts" DROP COLUMN "deleted_at"`);
        await queryRunner.query(`ALTER TABLE "posts" ADD "deleted_at" TIMESTAMP(0) WITH TIME ZONE`);
        await queryRunner.query(`COMMENT ON COLUMN "campaign_payments"."exchange_rate" IS 'STRIPE EXCHANGE RATE'`);
    }

    public async down(queryRunner: QueryRunner): Promise<void> {
        await queryRunner.query(`COMMENT ON COLUMN "campaign_payments"."exchange_rate" IS 'STRIPE TRANSACTION FEE'`);
        await queryRunner.query(`ALTER TABLE "posts" DROP COLUMN "deleted_at"`);
        await queryRunner.query(`ALTER TABLE "posts" ADD "deleted_at" TIMESTAMP(0)`);
        await queryRunner.query(`ALTER TABLE "posts" DROP COLUMN "updated_at"`);
        await queryRunner.query(`ALTER TABLE "posts" ADD "updated_at" TIMESTAMP(0) NOT NULL DEFAULT now()`);
        await queryRunner.query(`ALTER TABLE "posts" DROP COLUMN "created_at"`);
        await queryRunner.query(`ALTER TABLE "posts" ADD "created_at" TIMESTAMP(0) NOT NULL DEFAULT now()`);
        await queryRunner.query(`ALTER TABLE "campaign_payments" RENAME COLUMN "exchange_rate" TO "transaction_fee"`);
    }

}
