import { MigrationInterface, QueryRunner } from "typeorm";

export class Migrations1732946616401 implements MigrationInterface {
    name = 'Migrations1732946616401'

    public async up(queryRunner: QueryRunner): Promise<void> {
        await queryRunner.query(`CREATE TABLE "cards" ("id" uuid NOT NULL DEFAULT uuid_generate_v4(), "user_id" uuid NOT NULL, "card_id" character varying(255) NOT NULL, "last4" character varying(4) NOT NULL, "brand" character varying(50) NOT NULL, "exp_month" integer NOT NULL, "exp_year" integer NOT NULL, "is_default" boolean NOT NULL DEFAULT false, "created_at" TIMESTAMP(0) NOT NULL DEFAULT now(), "updated_at" TIMESTAMP(0) NOT NULL DEFAULT now(), "deleted_at" TIMESTAMP(0), "usersId" uuid, CONSTRAINT "PK_5f3269634705fdff4a9935860fc" PRIMARY KEY ("id"))`);
        await queryRunner.query(`ALTER TABLE "users" ADD "stripe_customer_id" character varying`);
        await queryRunner.query(`ALTER TABLE "cards" ADD CONSTRAINT "FK_22922146d98c30f108f3945e2dd" FOREIGN KEY ("usersId") REFERENCES "users"("id") ON DELETE CASCADE ON UPDATE NO ACTION`);
    }

    public async down(queryRunner: QueryRunner): Promise<void> {
        await queryRunner.query(`ALTER TABLE "cards" DROP CONSTRAINT "FK_22922146d98c30f108f3945e2dd"`);
        await queryRunner.query(`ALTER TABLE "users" DROP COLUMN "stripe_customer_id"`);
        await queryRunner.query(`DROP TABLE "cards"`);
    }

}
