From 27bfa4fc2cf71a2fca3ca1f98ff6d6179a05be12 Mon Sep 17 00:00:00 2001 From: Hugo Falcao Date: Mon, 29 Aug 2022 20:14:48 -0300 Subject: [PATCH 1/3] refactor(migrations): :recycle: Atualiza migration de itineraries --- .../1659404395471-CreateItineraries.ts | 33 +++++++++++++++++-- .../1660010452826-CreatePassengers.ts | 31 +++++++++++++++-- 2 files changed, 58 insertions(+), 6 deletions(-) diff --git a/src/database/migrations/1659404395471-CreateItineraries.ts b/src/database/migrations/1659404395471-CreateItineraries.ts index 0ff2d25..431b502 100644 --- a/src/database/migrations/1659404395471-CreateItineraries.ts +++ b/src/database/migrations/1659404395471-CreateItineraries.ts @@ -1,4 +1,10 @@ -import { MigrationInterface, QueryRunner, Table, TableForeignKey, TableIndex } from 'typeorm'; +import { + MigrationInterface, + QueryRunner, + Table, + TableForeignKey, + TableIndex, +} from 'typeorm'; export class CreateItineraries1659404395471 implements MigrationInterface { public async up(queryRunner: QueryRunner): Promise { @@ -47,6 +53,22 @@ export class CreateItineraries1659404395471 implements MigrationInterface { name: 'itinerary_nickname', type: 'varchar', }, + { + name: 'is_active', + type: 'boolean', + }, + { + name: 'estimated_departure_address', + type: 'varchar', + }, + { + name: 'departure_latitude', + type: 'numeric', + }, + { + name: 'departure_longitude', + type: 'numeric', + }, { name: 'created_at', type: 'timestamp', @@ -77,9 +99,14 @@ export class CreateItineraries1659404395471 implements MigrationInterface { 'itineraries', new TableIndex({ name: 'itineraries_idx', - columnNames: ['van_plate', 'days_of_week', 'specific_day', 'estimated_departure_time'], + columnNames: [ + 'van_plate', + 'days_of_week', + 'specific_day', + 'estimated_departure_time', + ], isUnique: true, - }) + }), ); } diff --git a/src/database/migrations/1660010452826-CreatePassengers.ts b/src/database/migrations/1660010452826-CreatePassengers.ts index 9a0fd6d..0549219 100644 --- a/src/database/migrations/1660010452826-CreatePassengers.ts +++ b/src/database/migrations/1660010452826-CreatePassengers.ts @@ -1,4 +1,10 @@ -import { MigrationInterface, QueryRunner, Table, TableForeignKey, TableIndex } from 'typeorm'; +import { + MigrationInterface, + QueryRunner, + Table, + TableForeignKey, + TableIndex, +} from 'typeorm'; export class CreatePassengers1660010452826 implements MigrationInterface { public async up(queryRunner: QueryRunner): Promise { @@ -21,6 +27,22 @@ export class CreatePassengers1660010452826 implements MigrationInterface { name: 'user_id', type: 'uuid', }, + { + name: 'address', + type: 'varchar', + }, + { + name: 'latitude_address', + type: 'numeric', + }, + { + name: 'longitude_address', + type: 'numeric', + }, + { + name: 'payment_status', + type: 'boolean', + }, ], }), ); @@ -50,7 +72,7 @@ export class CreatePassengers1660010452826 implements MigrationInterface { ); await queryRunner.createIndex( - 'passengers', + 'passengers', new TableIndex({ name: 'passengers_itinerary_user_idx', columnNames: ['itinerary_id', 'user_id'], @@ -61,7 +83,10 @@ export class CreatePassengers1660010452826 implements MigrationInterface { public async down(queryRunner: QueryRunner): Promise { await queryRunner.dropTable('passengers'); - await queryRunner.dropForeignKey('passengers', 'passengers_itinerary_id_fk'); + await queryRunner.dropForeignKey( + 'passengers', + 'passengers_itinerary_id_fk', + ); await queryRunner.dropForeignKey('passengers', 'passengers_user_id_fk'); await queryRunner.dropIndex('passengers', 'passengers_itinerary_user_idx'); } From a6235e599120711ffe5c2477b27953149ab0ca76 Mon Sep 17 00:00:00 2001 From: Hugo Falcao Date: Thu, 1 Sep 2022 22:39:09 -0300 Subject: [PATCH 2/3] feat(migrations): :sparkles: Create table "PassengersRequests" --- .../1662081949950-CreatePassengersRequests.ts | 107 ++++++++++++++++++ 1 file changed, 107 insertions(+) create mode 100644 src/database/migrations/1662081949950-CreatePassengersRequests.ts diff --git a/src/database/migrations/1662081949950-CreatePassengersRequests.ts b/src/database/migrations/1662081949950-CreatePassengersRequests.ts new file mode 100644 index 0000000..a906f70 --- /dev/null +++ b/src/database/migrations/1662081949950-CreatePassengersRequests.ts @@ -0,0 +1,107 @@ +import { + MigrationInterface, + QueryRunner, + Table, + TableForeignKey, + TableIndex, +} from 'typeorm'; + +export class CreatePassengersRequests1662081949950 + implements MigrationInterface +{ + public async up(queryRunner: QueryRunner): Promise { + await queryRunner.createTable( + new Table({ + name: 'passengers_requests', + columns: [ + { + name: 'id_request', + type: 'integer', + isPrimary: true, + isGenerated: true, + generationStrategy: 'increment', + }, + { + name: 'itinerary_id', + type: 'integer', + }, + { + name: 'user_id', + type: 'uuid', + }, + { + name: 'status', + type: 'enum', + enum: ['pending', 'accepted', 'rejected'], + }, + { + name: 'created_at', + type: 'timestamp', + default: 'now()', + }, + { + name: 'address', + type: 'varchar', + }, + { + name: 'latitude_address', + type: 'numeric', + }, + { + name: 'longitude_address', + type: 'numeric', + }, + ], + }), + ); + + await queryRunner.createForeignKey( + 'passengers_requests', + new TableForeignKey({ + name: 'passengers_requests_itinerary_id_fk', // nome da FK, serve para referenciar numa exclusão pelo QueryRunner se necessário + columnNames: ['itinerary_id'], // coluna que vai virar FK + referencedColumnNames: ['id_itinerary'], // coluna PK da tabela referenciada + referencedTableName: 'itineraries', // nome da tabela que possui a PK + onDelete: 'SET NULL', + onUpdate: 'CASCADE', + }), + ); + + await queryRunner.createForeignKey( + 'passengers_requests', + new TableForeignKey({ + name: 'passengers_requests_user_id_fk', // nome da FK, serve para referenciar numa exclusão pelo QueryRunner se necessário + columnNames: ['user_id'], // coluna que vai virar FK + referencedColumnNames: ['id_user'], // coluna PK da tabela referenciada + referencedTableName: 'users', // nome da tabela que possui a PK + onDelete: 'SET NULL', + onUpdate: 'CASCADE', + }), + ); + + await queryRunner.createIndex( + 'passengers_requests', + new TableIndex({ + name: 'passengers_requests_idx', + columnNames: ['itinerary_id', 'user_id', 'status', 'created_at'], + isUnique: true, + }), + ); + } + + public async down(queryRunner: QueryRunner): Promise { + await queryRunner.dropTable('passengers_requests'); + await queryRunner.dropForeignKey( + 'passengers_requests', + 'passengers_requests_itinerary_id_fk', + ); + await queryRunner.dropForeignKey( + 'passengers_requests', + 'passengers_requests_user_id_fk', + ); + await queryRunner.dropIndex( + 'passengers_requests', + 'passengers_requests_idx', + ); + } +} From c1c8dc7a5ec1043bff7ae027e0b959e0cc561254 Mon Sep 17 00:00:00 2001 From: Hugo Falcao Date: Thu, 1 Sep 2022 22:40:16 -0300 Subject: [PATCH 3/3] feat(migrations): :sparkles: Add column "is_active" in index of Itineraries table --- src/database/migrations/1659404395471-CreateItineraries.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/src/database/migrations/1659404395471-CreateItineraries.ts b/src/database/migrations/1659404395471-CreateItineraries.ts index 431b502..979cc05 100644 --- a/src/database/migrations/1659404395471-CreateItineraries.ts +++ b/src/database/migrations/1659404395471-CreateItineraries.ts @@ -104,6 +104,7 @@ export class CreateItineraries1659404395471 implements MigrationInterface { 'days_of_week', 'specific_day', 'estimated_departure_time', + 'is_active', ], isUnique: true, }),