diff --git a/src/db/migrations/1747569536067-add-address-fields-to-customers.ts b/src/db/migrations/1747569536067-add-address-fields-to-customers.ts deleted file mode 100644 index 4d8a8ec..0000000 --- a/src/db/migrations/1747569536067-add-address-fields-to-customers.ts +++ /dev/null @@ -1,23 +0,0 @@ -import { MigrationInterface, QueryRunner } from 'typeorm'; - -export class AddAddressFieldsToCustomers1747569536067 implements MigrationInterface { - name = 'AddAddressFieldsToCustomers1747569536067'; - - public async up(queryRunner: QueryRunner): Promise { - await queryRunner.query(`ALTER TABLE "customers" ADD "country" character varying(255)`); - await queryRunner.query(`ALTER TABLE "customers" ADD "region" character varying(255)`); - await queryRunner.query(`ALTER TABLE "customers" ADD "city" character varying(255)`); - await queryRunner.query(`ALTER TABLE "customers" ADD "neighborhood" character varying(255)`); - await queryRunner.query(`ALTER TABLE "customers" ADD "street" character varying(255)`); - await queryRunner.query(`ALTER TABLE "customers" ADD "building" character varying(255)`); - } - - public async down(queryRunner: QueryRunner): Promise { - await queryRunner.query(`ALTER TABLE "customers" DROP COLUMN "building"`); - await queryRunner.query(`ALTER TABLE "customers" DROP COLUMN "street"`); - await queryRunner.query(`ALTER TABLE "customers" DROP COLUMN "neighborhood"`); - await queryRunner.query(`ALTER TABLE "customers" DROP COLUMN "city"`); - await queryRunner.query(`ALTER TABLE "customers" DROP COLUMN "region"`); - await queryRunner.query(`ALTER TABLE "customers" DROP COLUMN "country"`); - } -} diff --git a/src/db/migrations/1749633935436-create-card-entity.ts b/src/db/migrations/1749633935436-create-card-entity.ts deleted file mode 100644 index 5a2ed55..0000000 --- a/src/db/migrations/1749633935436-create-card-entity.ts +++ /dev/null @@ -1,40 +0,0 @@ -import { MigrationInterface, QueryRunner } from 'typeorm'; - -export class CreateCardEntity1749633935436 implements MigrationInterface { - name = 'CreateCardEntity1749633935436'; - - public async up(queryRunner: QueryRunner): Promise { - await queryRunner.query( - `CREATE TABLE "cards" - ("id" uuid NOT NULL DEFAULT uuid_generate_v4(), - "card_reference" character varying NOT NULL, - "first_six_digits" character varying(6) NOT NULL, - "last_four_digits" character varying(4) NOT NULL, - "expiry" character varying NOT NULL, - "customer_type" character varying NOT NULL, - "color" character varying NOT NULL DEFAULT 'BLUE', - "status" character varying NOT NULL DEFAULT 'PENDING', - "scheme" character varying NOT NULL DEFAULT 'VISA', - "issuer" character varying NOT NULL, - "customer_id" uuid NOT NULL, - "parent_id" uuid, - "created_at" TIMESTAMP WITH TIME ZONE NOT NULL DEFAULT now(), - "updated_at" TIMESTAMP WITH TIME ZONE NOT NULL DEFAULT now(), - CONSTRAINT "PK_9451069b6f1199730791a7f4ae4" PRIMARY KEY ("id"))`, - ); - await queryRunner.query(`CREATE UNIQUE INDEX "IDX_6fb82820c0b1b7ec32a8dbf911" ON "cards" ("card_reference") `); - await queryRunner.query( - `ALTER TABLE "cards" ADD CONSTRAINT "FK_d46837f6ab27271d8125517d0b6" FOREIGN KEY ("parent_id") REFERENCES "customers"("id") ON DELETE NO ACTION ON UPDATE NO ACTION`, - ); - await queryRunner.query( - `ALTER TABLE "cards" ADD CONSTRAINT "FK_f5aa0baf4ff1b397b3f946a443e" FOREIGN KEY ("customer_id") REFERENCES "customers"("id") ON DELETE CASCADE ON UPDATE NO ACTION`, - ); - } - - public async down(queryRunner: QueryRunner): Promise { - await queryRunner.query(`ALTER TABLE "cards" DROP CONSTRAINT "FK_f5aa0baf4ff1b397b3f946a443e"`); - await queryRunner.query(`ALTER TABLE "cards" DROP CONSTRAINT "FK_d46837f6ab27271d8125517d0b6"`); - await queryRunner.query(`DROP INDEX "public"."IDX_6fb82820c0b1b7ec32a8dbf911"`); - await queryRunner.query(`DROP TABLE "cards"`); - } -} diff --git a/src/db/migrations/1751456987627-create-account-entity.ts b/src/db/migrations/1751456987627-create-account-entity.ts deleted file mode 100644 index 40e7a1b..0000000 --- a/src/db/migrations/1751456987627-create-account-entity.ts +++ /dev/null @@ -1,45 +0,0 @@ -import { MigrationInterface, QueryRunner } from 'typeorm'; - -export class CreateAccountEntity1751456987627 implements MigrationInterface { - name = 'CreateAccountEntity1751456987627'; - - public async up(queryRunner: QueryRunner): Promise { - await queryRunner.query(`ALTER TABLE "cards" DROP CONSTRAINT "FK_f5aa0baf4ff1b397b3f946a443e"`); - await queryRunner.query(`ALTER TABLE "cards" DROP CONSTRAINT "FK_d46837f6ab27271d8125517d0b6"`); - await queryRunner.query(`DROP INDEX "public"."IDX_6fb82820c0b1b7ec32a8dbf911"`); - await queryRunner.query( - `CREATE TABLE "accounts" ("id" uuid NOT NULL DEFAULT uuid_generate_v4(), "account_reference" character varying(255) NOT NULL, "currency" character varying(255) NOT NULL, "balance" numeric(10,2) NOT NULL DEFAULT '0', "created_at" TIMESTAMP WITH TIME ZONE NOT NULL DEFAULT now(), "updated_at" TIMESTAMP WITH TIME ZONE NOT NULL DEFAULT now(), CONSTRAINT "UQ_829183fe026a0ce5fc8026b2417" UNIQUE ("account_reference"), CONSTRAINT "PK_5a7a02c20412299d198e097a8fe" PRIMARY KEY ("id"))`, - ); - await queryRunner.query( - `CREATE UNIQUE INDEX "IDX_829183fe026a0ce5fc8026b241" ON "accounts" ("account_reference") `, - ); - await queryRunner.query(`ALTER TABLE "cards" ADD "account_id" uuid NOT NULL`); - await queryRunner.query(`CREATE UNIQUE INDEX "IDX_4f7df5c5dc950295dc417a11d8" ON "cards" ("card_reference") `); - await queryRunner.query( - `ALTER TABLE "cards" ADD CONSTRAINT "FK_8ba18e7060c38ddae12e5bdf907" FOREIGN KEY ("parent_id") REFERENCES "customers"("id") ON DELETE NO ACTION ON UPDATE NO ACTION`, - ); - await queryRunner.query( - `ALTER TABLE "cards" ADD CONSTRAINT "FK_2fd0ee722ec57594d2e448c73d7" FOREIGN KEY ("customer_id") REFERENCES "customers"("id") ON DELETE CASCADE ON UPDATE NO ACTION`, - ); - await queryRunner.query( - `ALTER TABLE "cards" ADD CONSTRAINT "FK_b2874ef49ff7da2dee49e4bc6d3" FOREIGN KEY ("account_id") REFERENCES "accounts"("id") ON DELETE CASCADE ON UPDATE NO ACTION`, - ); - } - - public async down(queryRunner: QueryRunner): Promise { - await queryRunner.query(`ALTER TABLE "cards" DROP CONSTRAINT "FK_b2874ef49ff7da2dee49e4bc6d3"`); - await queryRunner.query(`ALTER TABLE "cards" DROP CONSTRAINT "FK_2fd0ee722ec57594d2e448c73d7"`); - await queryRunner.query(`ALTER TABLE "cards" DROP CONSTRAINT "FK_8ba18e7060c38ddae12e5bdf907"`); - await queryRunner.query(`DROP INDEX "public"."IDX_4f7df5c5dc950295dc417a11d8"`); - await queryRunner.query(`ALTER TABLE "cards" DROP COLUMN "account_id"`); - await queryRunner.query(`DROP INDEX "public"."IDX_829183fe026a0ce5fc8026b241"`); - await queryRunner.query(`DROP TABLE "accounts"`); - await queryRunner.query(`CREATE UNIQUE INDEX "IDX_6fb82820c0b1b7ec32a8dbf911" ON "cards" ("card_reference") `); - await queryRunner.query( - `ALTER TABLE "cards" ADD CONSTRAINT "FK_d46837f6ab27271d8125517d0b6" FOREIGN KEY ("parent_id") REFERENCES "customers"("id") ON DELETE NO ACTION ON UPDATE NO ACTION`, - ); - await queryRunner.query( - `ALTER TABLE "cards" ADD CONSTRAINT "FK_f5aa0baf4ff1b397b3f946a443e" FOREIGN KEY ("customer_id") REFERENCES "customers"("id") ON DELETE CASCADE ON UPDATE NO ACTION`, - ); - } -} diff --git a/src/db/migrations/1751466314709-create-transaction-table.ts b/src/db/migrations/1751466314709-create-transaction-table.ts deleted file mode 100644 index 4c5e773..0000000 --- a/src/db/migrations/1751466314709-create-transaction-table.ts +++ /dev/null @@ -1,18 +0,0 @@ -import { MigrationInterface, QueryRunner } from "typeorm"; - -export class CreateTransactionTable1751466314709 implements MigrationInterface { - name = 'CreateTransactionTable1751466314709' - - public async up(queryRunner: QueryRunner): Promise { - await queryRunner.query(`CREATE TABLE "transactions" ("id" uuid NOT NULL DEFAULT uuid_generate_v4(), "card_reference" character varying, "transaction_type" character varying NOT NULL DEFAULT 'EXTERNAL', "account_reference" character varying, "transaction_id" character varying, "card_masked_number" character varying, "transaction_date" TIMESTAMP WITH TIME ZONE, "rrn" character varying, "transaction_amount" numeric(12,2) NOT NULL, "transaction_currency" character varying NOT NULL, "billing_amount" numeric(12,2) NOT NULL, "settlement_amount" numeric(12,2) NOT NULL, "fees" numeric(12,2) NOT NULL, "card_id" uuid, "account_id" uuid, "created_at" TIMESTAMP WITH TIME ZONE NOT NULL DEFAULT now(), CONSTRAINT "UQ_9162bf9ab4e31961a8f7932974c" UNIQUE ("transaction_id"), CONSTRAINT "PK_a219afd8dd77ed80f5a862f1db9" PRIMARY KEY ("id"))`); - await queryRunner.query(`ALTER TABLE "transactions" ADD CONSTRAINT "FK_80ad48141be648db2d84ff32f79" FOREIGN KEY ("card_id") REFERENCES "cards"("id") ON DELETE CASCADE ON UPDATE NO ACTION`); - await queryRunner.query(`ALTER TABLE "transactions" ADD CONSTRAINT "FK_49c0d6e8ba4bfb5582000d851f0" FOREIGN KEY ("account_id") REFERENCES "accounts"("id") ON DELETE CASCADE ON UPDATE NO ACTION`); - } - - public async down(queryRunner: QueryRunner): Promise { - await queryRunner.query(`ALTER TABLE "transactions" DROP CONSTRAINT "FK_49c0d6e8ba4bfb5582000d851f0"`); - await queryRunner.query(`ALTER TABLE "transactions" DROP CONSTRAINT "FK_80ad48141be648db2d84ff32f79"`); - await queryRunner.query(`DROP TABLE "transactions"`); - } - -} diff --git a/src/db/migrations/1752056898465-edit-transaction-table.ts b/src/db/migrations/1752056898465-edit-transaction-table.ts deleted file mode 100644 index d4bab41..0000000 --- a/src/db/migrations/1752056898465-edit-transaction-table.ts +++ /dev/null @@ -1,16 +0,0 @@ -import { MigrationInterface, QueryRunner } from "typeorm"; - -export class EditTransactionTable1752056898465 implements MigrationInterface { - name = 'EditTransactionTable1752056898465' - - public async up(queryRunner: QueryRunner): Promise { - await queryRunner.query(`ALTER TABLE "transactions" ADD "transaction_scope" character varying NOT NULL`); - await queryRunner.query(`ALTER TABLE "transactions" ADD "vat_on_fees" numeric(12,2) NOT NULL DEFAULT '0'`); - } - - public async down(queryRunner: QueryRunner): Promise { - await queryRunner.query(`ALTER TABLE "transactions" DROP COLUMN "vat_on_fees"`); - await queryRunner.query(`ALTER TABLE "transactions" DROP COLUMN "transaction_scope"`); - } - -} diff --git a/src/db/migrations/1753098116701-update-card-table.ts b/src/db/migrations/1753098116701-update-card-table.ts deleted file mode 100644 index 56cb15c..0000000 --- a/src/db/migrations/1753098116701-update-card-table.ts +++ /dev/null @@ -1,16 +0,0 @@ -import { MigrationInterface, QueryRunner } from "typeorm"; - -export class UpdateCardTable1753098116701 implements MigrationInterface { - name = 'UpdateCardTable1753098116701' - - public async up(queryRunner: QueryRunner): Promise { - await queryRunner.query(`ALTER TABLE "cards" ADD "statusDescription" character varying NOT NULL DEFAULT 'PENDING_ACTIVATION'`); - await queryRunner.query(`ALTER TABLE "cards" ADD "limit" numeric(10,2) NOT NULL DEFAULT '0'`); - } - - public async down(queryRunner: QueryRunner): Promise { - await queryRunner.query(`ALTER TABLE "cards" DROP COLUMN "limit"`); - await queryRunner.query(`ALTER TABLE "cards" DROP COLUMN "statusDescription"`); - } - -} diff --git a/src/db/migrations/1753098326876-edit-customer-table.ts b/src/db/migrations/1753098326876-edit-customer-table.ts deleted file mode 100644 index 2595e2b..0000000 --- a/src/db/migrations/1753098326876-edit-customer-table.ts +++ /dev/null @@ -1,16 +0,0 @@ -import { MigrationInterface, QueryRunner } from "typeorm"; - -export class EditCustomerTable1753098326876 implements MigrationInterface { - name = 'EditCustomerTable1753098326876' - - public async up(queryRunner: QueryRunner): Promise { - await queryRunner.query(`ALTER TABLE "customers" RENAME COLUMN "waiting_number" TO "application_number"`); - await queryRunner.query(`ALTER SEQUENCE "customers_waiting_number_seq" RENAME TO "customers_application_number_seq"`); - } - - public async down(queryRunner: QueryRunner): Promise { - await queryRunner.query(`ALTER SEQUENCE "customers_application_number_seq" RENAME TO "customers_waiting_number_seq"`); - await queryRunner.query(`ALTER TABLE "customers" RENAME COLUMN "application_number" TO "waiting_number"`); - } - -} diff --git a/src/db/migrations/1753874205042-add-neoleap-related-entities.ts b/src/db/migrations/1753874205042-add-neoleap-related-entities.ts new file mode 100644 index 0000000..ab80885 --- /dev/null +++ b/src/db/migrations/1753874205042-add-neoleap-related-entities.ts @@ -0,0 +1,44 @@ +import { MigrationInterface, QueryRunner } from "typeorm"; + +export class AddNeoleapRelatedEntities1753874205042 implements MigrationInterface { + name = 'AddNeoleapRelatedEntities1753874205042' + + public async up(queryRunner: QueryRunner): Promise { + await queryRunner.query(`CREATE TABLE "transactions" ("id" uuid NOT NULL DEFAULT uuid_generate_v4(), "transaction_scope" character varying NOT NULL, "transaction_type" character varying NOT NULL DEFAULT 'EXTERNAL', "card_reference" character varying, "account_reference" character varying, "transaction_id" character varying, "card_masked_number" character varying, "transaction_date" TIMESTAMP WITH TIME ZONE, "rrn" character varying, "transaction_amount" numeric(12,2) NOT NULL, "transaction_currency" character varying NOT NULL, "billing_amount" numeric(12,2) NOT NULL, "settlement_amount" numeric(12,2) NOT NULL, "fees" numeric(12,2) NOT NULL, "vat_on_fees" numeric(12,2) NOT NULL DEFAULT '0', "card_id" uuid, "account_id" uuid, "created_at" TIMESTAMP WITH TIME ZONE NOT NULL DEFAULT now(), CONSTRAINT "UQ_9162bf9ab4e31961a8f7932974c" UNIQUE ("transaction_id"), CONSTRAINT "PK_a219afd8dd77ed80f5a862f1db9" PRIMARY KEY ("id"))`); + await queryRunner.query(`CREATE TABLE "accounts" ("id" uuid NOT NULL DEFAULT uuid_generate_v4(), "account_reference" character varying(255) NOT NULL, "currency" character varying(255) NOT NULL, "balance" numeric(10,2) NOT NULL DEFAULT '0', "created_at" TIMESTAMP WITH TIME ZONE NOT NULL DEFAULT now(), "updated_at" TIMESTAMP WITH TIME ZONE NOT NULL DEFAULT now(), CONSTRAINT "UQ_829183fe026a0ce5fc8026b2417" UNIQUE ("account_reference"), CONSTRAINT "PK_5a7a02c20412299d198e097a8fe" PRIMARY KEY ("id"))`); + await queryRunner.query(`CREATE UNIQUE INDEX "IDX_829183fe026a0ce5fc8026b241" ON "accounts" ("account_reference") `); + await queryRunner.query(`CREATE TABLE "cards" ("id" uuid NOT NULL DEFAULT uuid_generate_v4(), "card_reference" character varying NOT NULL, "first_six_digits" character varying(6) NOT NULL, "last_four_digits" character varying(4) NOT NULL, "expiry" character varying NOT NULL, "customer_type" character varying NOT NULL, "color" character varying NOT NULL DEFAULT 'BLUE', "status" character varying NOT NULL DEFAULT 'PENDING', "statusDescription" character varying NOT NULL DEFAULT 'PENDING_ACTIVATION', "limit" numeric(10,2) NOT NULL DEFAULT '0', "scheme" character varying NOT NULL DEFAULT 'VISA', "issuer" character varying NOT NULL, "customer_id" uuid NOT NULL, "parent_id" uuid, "account_id" uuid NOT NULL, "created_at" TIMESTAMP WITH TIME ZONE NOT NULL DEFAULT now(), "updated_at" TIMESTAMP WITH TIME ZONE NOT NULL DEFAULT now(), CONSTRAINT "PK_5f3269634705fdff4a9935860fc" PRIMARY KEY ("id"))`); + await queryRunner.query(`CREATE UNIQUE INDEX "IDX_4f7df5c5dc950295dc417a11d8" ON "cards" ("card_reference") `); + await queryRunner.query(`ALTER TABLE "customers" ADD "country" character varying(255)`); + await queryRunner.query(`ALTER TABLE "customers" ADD "region" character varying(255)`); + await queryRunner.query(`ALTER TABLE "customers" ADD "city" character varying(255)`); + await queryRunner.query(`ALTER TABLE "customers" ADD "neighborhood" character varying(255)`); + await queryRunner.query(`ALTER TABLE "customers" ADD "street" character varying(255)`); + await queryRunner.query(`ALTER TABLE "customers" ADD "building" character varying(255)`); + await queryRunner.query(`ALTER TABLE "transactions" ADD CONSTRAINT "FK_80ad48141be648db2d84ff32f79" FOREIGN KEY ("card_id") REFERENCES "cards"("id") ON DELETE CASCADE ON UPDATE NO ACTION`); + await queryRunner.query(`ALTER TABLE "transactions" ADD CONSTRAINT "FK_49c0d6e8ba4bfb5582000d851f0" FOREIGN KEY ("account_id") REFERENCES "accounts"("id") ON DELETE CASCADE ON UPDATE NO ACTION`); + await queryRunner.query(`ALTER TABLE "cards" ADD CONSTRAINT "FK_8ba18e7060c38ddae12e5bdf907" FOREIGN KEY ("parent_id") REFERENCES "customers"("id") ON DELETE NO ACTION ON UPDATE NO ACTION`); + await queryRunner.query(`ALTER TABLE "cards" ADD CONSTRAINT "FK_2fd0ee722ec57594d2e448c73d7" FOREIGN KEY ("customer_id") REFERENCES "customers"("id") ON DELETE CASCADE ON UPDATE NO ACTION`); + await queryRunner.query(`ALTER TABLE "cards" ADD CONSTRAINT "FK_b2874ef49ff7da2dee49e4bc6d3" FOREIGN KEY ("account_id") REFERENCES "accounts"("id") ON DELETE CASCADE ON UPDATE NO ACTION`); + } + + public async down(queryRunner: QueryRunner): Promise { + await queryRunner.query(`ALTER TABLE "cards" DROP CONSTRAINT "FK_b2874ef49ff7da2dee49e4bc6d3"`); + await queryRunner.query(`ALTER TABLE "cards" DROP CONSTRAINT "FK_2fd0ee722ec57594d2e448c73d7"`); + await queryRunner.query(`ALTER TABLE "cards" DROP CONSTRAINT "FK_8ba18e7060c38ddae12e5bdf907"`); + await queryRunner.query(`ALTER TABLE "transactions" DROP CONSTRAINT "FK_49c0d6e8ba4bfb5582000d851f0"`); + await queryRunner.query(`ALTER TABLE "transactions" DROP CONSTRAINT "FK_80ad48141be648db2d84ff32f79"`); + await queryRunner.query(`ALTER TABLE "customers" DROP COLUMN "building"`); + await queryRunner.query(`ALTER TABLE "customers" DROP COLUMN "street"`); + await queryRunner.query(`ALTER TABLE "customers" DROP COLUMN "neighborhood"`); + await queryRunner.query(`ALTER TABLE "customers" DROP COLUMN "city"`); + await queryRunner.query(`ALTER TABLE "customers" DROP COLUMN "region"`); + await queryRunner.query(`ALTER TABLE "customers" DROP COLUMN "country"`); + await queryRunner.query(`DROP INDEX "public"."IDX_4f7df5c5dc950295dc417a11d8"`); + await queryRunner.query(`DROP TABLE "cards"`); + await queryRunner.query(`DROP INDEX "public"."IDX_829183fe026a0ce5fc8026b241"`); + await queryRunner.query(`DROP TABLE "accounts"`); + await queryRunner.query(`DROP TABLE "transactions"`); + } + +} diff --git a/src/db/migrations/index.ts b/src/db/migrations/index.ts index e06880b..9996c42 100644 --- a/src/db/migrations/index.ts +++ b/src/db/migrations/index.ts @@ -2,3 +2,4 @@ export * from './1753869637732-seed-default-avatar'; export * from './1733990253208-seeds-default-tasks-logo'; export * from './1734247702310-seeds-goals-categories'; export * from './1733750228289-initial-migration'; +export * from './1753874205042-add-neoleap-related-entities';