From d0cce0b3cccbfc2b84a53f1edc9cda5938042c46 Mon Sep 17 00:00:00 2001 From: Hugo Falcao Date: Thu, 28 Jul 2022 23:57:43 -0300 Subject: [PATCH 1/6] refactor(transportes): :recycle: Padroniza nome da rota de transportes --- src/routes/index.ts | 6 +++--- src/routes/{transportes.routes.ts => transports.routes.ts} | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) rename src/routes/{transportes.routes.ts => transports.routes.ts} (95%) diff --git a/src/routes/index.ts b/src/routes/index.ts index c5ed39c..52d74f5 100644 --- a/src/routes/index.ts +++ b/src/routes/index.ts @@ -1,8 +1,8 @@ import { Router } from 'express'; -import searchRoutes from './search.routes'; +import searchRoutes from './search.routes'; import sessionsRouter from './sessions.routes'; -import transportesRouter from './transportes.routes'; +import transportsRouter from './transports.routes'; import usersRouter from './users.routes'; import carsRouter from './cars.routes'; import vansRouter from './vans.routes'; @@ -12,7 +12,7 @@ const routes = Router(); routes.use('/users', usersRouter); routes.use('/sessions', sessionsRouter); routes.use('/search', searchRoutes); -routes.use('/transportes', transportesRouter); +routes.use('/transports', transportsRouter); routes.use('/cars', carsRouter); routes.use('/vans', vansRouter); diff --git a/src/routes/transportes.routes.ts b/src/routes/transports.routes.ts similarity index 95% rename from src/routes/transportes.routes.ts rename to src/routes/transports.routes.ts index ef4c2a4..f8caff8 100644 --- a/src/routes/transportes.routes.ts +++ b/src/routes/transports.routes.ts @@ -2,9 +2,9 @@ import { Router } from 'express'; import { getRepository } from 'typeorm'; import CalculateDistanceBetweenCoords from '../services/CalculateDistanceBetweenCoords'; -const transportesRouter = Router(); +const transporteRouter = Router(); -transportesRouter.post('/', async (request, response) => { +transporteRouter.post('/', async (request, response) => { const { coordinatesFrom, coordinatesTo } = request.body; console.log(coordinatesFrom, coordinatesTo); const data = [ @@ -95,4 +95,4 @@ transportesRouter.post('/', async (request, response) => { return response.json(transportsFiltered); }); -export default transportesRouter; +export default transporteRouter; From ef1e3c578b1aebf3aa29ccd0a9b9de6bcca37c9c Mon Sep 17 00:00:00 2001 From: Hugo Falcao Date: Tue, 9 Aug 2022 00:38:22 -0300 Subject: [PATCH 2/6] feat(migrations): :construction: Create migrations of tables (routes, neighborhoods served, destinations, passengers and route historic --- .../migrations/1659404395471-CreateRoutes.ts | 54 +++++++++++++++++++ ...1660009211327-CreateNeighborhoodsServed.ts | 42 +++++++++++++++ .../1660009323138-CreateDestinations.ts | 42 +++++++++++++++ .../1660010452826-CreatePassengers.ts | 34 ++++++++++++ .../1660010491828-CreateRouteHistory.ts | 38 +++++++++++++ 5 files changed, 210 insertions(+) create mode 100644 src/database/migrations/1659404395471-CreateRoutes.ts create mode 100644 src/database/migrations/1660009211327-CreateNeighborhoodsServed.ts create mode 100644 src/database/migrations/1660009323138-CreateDestinations.ts create mode 100644 src/database/migrations/1660010452826-CreatePassengers.ts create mode 100644 src/database/migrations/1660010491828-CreateRouteHistory.ts diff --git a/src/database/migrations/1659404395471-CreateRoutes.ts b/src/database/migrations/1659404395471-CreateRoutes.ts new file mode 100644 index 0000000..f8c75f7 --- /dev/null +++ b/src/database/migrations/1659404395471-CreateRoutes.ts @@ -0,0 +1,54 @@ +import { MigrationInterface, QueryRunner, Table } from 'typeorm'; + +export class CreateRoutes1659404395471 implements MigrationInterface { + public async up(queryRunner: QueryRunner): Promise { + await queryRunner.createTable( + new Table({ + name: 'routes', + columns: [ + { + name: 'id_route', + type: 'integer', + isPrimary: true, + isGenerated: true, + generationStrategy: 'increment', + }, + { + name: 'van_plate', + type: 'varchar', + }, + { + name: 'price', + type: 'float', + }, + { + name: 'estimated_departure_time', + type: 'time', + }, + { + name: 'estimated_arrival_time', + type: 'time', + }, + { + name: 'available_seats', + type: 'integer', + }, + { + name: 'created_at', + type: 'timestamp', + default: 'now()', + }, + { + name: 'updated_at', + type: 'timestamp', + default: 'now()', + }, + ], + }), + ); + } + + public async down(queryRunner: QueryRunner): Promise { + await queryRunner.dropTable('routes'); + } +} diff --git a/src/database/migrations/1660009211327-CreateNeighborhoodsServed.ts b/src/database/migrations/1660009211327-CreateNeighborhoodsServed.ts new file mode 100644 index 0000000..5d17ece --- /dev/null +++ b/src/database/migrations/1660009211327-CreateNeighborhoodsServed.ts @@ -0,0 +1,42 @@ +import { MigrationInterface, QueryRunner, Table } from 'typeorm'; + +export class CreateNeighborhoodsServed1660009211327 + implements MigrationInterface +{ + public async up(queryRunner: QueryRunner): Promise { + await queryRunner.createTable( + new Table({ + name: 'neighborhoods_served', + columns: [ + { + name: 'id_neighborhood', + type: 'integer', + isPrimary: true, + isGenerated: true, + generationStrategy: 'increment', + }, + { + name: 'route_id', + type: 'integer', + }, + { + name: 'name', + type: 'varchar', + }, + { + name: 'latitude', + type: 'numeric', + }, + { + name: 'longitude', + type: 'numeric', + } + ], + }), + ); + } + + public async down(queryRunner: QueryRunner): Promise { + await queryRunner.dropTable('neighborhoods_served'); + } +} diff --git a/src/database/migrations/1660009323138-CreateDestinations.ts b/src/database/migrations/1660009323138-CreateDestinations.ts new file mode 100644 index 0000000..9150f69 --- /dev/null +++ b/src/database/migrations/1660009323138-CreateDestinations.ts @@ -0,0 +1,42 @@ +import {MigrationInterface, QueryRunner, Table} from "typeorm"; + +export class CreateDestinations1660009323138 implements MigrationInterface { + + public async up(queryRunner: QueryRunner): Promise { + await queryRunner.createTable( + new Table({ + name: 'destinations', + columns: [ + { + name: 'id_destination', + type: 'integer', + isPrimary: true, + isGenerated: true, + generationStrategy: 'increment', + }, + { + name: 'route_id', + type: 'integer', + }, + { + name: 'name', + type: 'varchar', + }, + { + name: 'latitude', + type: 'numeric', + }, + { + name: 'longitude', + type: 'numeric', + } + ], + }), + ); + } + + public async down(queryRunner: QueryRunner): Promise { + await queryRunner.dropTable('destinations'); + } + +} diff --git a/src/database/migrations/1660010452826-CreatePassengers.ts b/src/database/migrations/1660010452826-CreatePassengers.ts new file mode 100644 index 0000000..c1753c3 --- /dev/null +++ b/src/database/migrations/1660010452826-CreatePassengers.ts @@ -0,0 +1,34 @@ +import {MigrationInterface, QueryRunner, Table} from "typeorm"; + +export class CreatePassengers1660010452826 implements MigrationInterface { + + public async up(queryRunner: QueryRunner): Promise { + await queryRunner.createTable( + new Table({ + name: 'passengers', + columns: [ + { + name: 'id_passenger', + type: 'integer', + isPrimary: true, + isGenerated: true, + generationStrategy: 'increment', + }, + { + name: 'route_id', + type: 'integer', + }, + { + name: 'user_id', + type: 'uuid', + } + ], + }), + ); + } + + public async down(queryRunner: QueryRunner): Promise { + await queryRunner.dropTable('passengers'); + } + +} diff --git a/src/database/migrations/1660010491828-CreateRouteHistory.ts b/src/database/migrations/1660010491828-CreateRouteHistory.ts new file mode 100644 index 0000000..35680c8 --- /dev/null +++ b/src/database/migrations/1660010491828-CreateRouteHistory.ts @@ -0,0 +1,38 @@ +import {MigrationInterface, QueryRunner, Table} from "typeorm"; + +export class CreateRouteHistory1660010491828 implements MigrationInterface { + + public async up(queryRunner: QueryRunner): Promise { + await queryRunner.createTable( + new Table({ + name: 'route_historic', + columns: [ + { + name: 'id_historic', + type: 'integer', + isPrimary: true, + isGenerated: true, + generationStrategy: 'increment', + }, + { + name: 'route_id', + type: 'integer', + }, + { + name: 'user_id', + type: 'uuid', + }, + { + name: 'date', + type: 'date', + }, + ], + }), + ); + } + + public async down(queryRunner: QueryRunner): Promise { + await queryRunner.dropTable('route_historic'); + } + +} From 87e8a49a63f2afa64bb2c73596c1ee2432bf91a2 Mon Sep 17 00:00:00 2001 From: Hugo Falcao Date: Tue, 9 Aug 2022 00:39:43 -0300 Subject: [PATCH 3/6] fix(migrations): :recycle: Adjust name of migration --- ...eateRouteHistory.ts => 1660010491828-CreateRouteHistoric.ts} | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) rename src/database/migrations/{1660010491828-CreateRouteHistory.ts => 1660010491828-CreateRouteHistoric.ts} (92%) diff --git a/src/database/migrations/1660010491828-CreateRouteHistory.ts b/src/database/migrations/1660010491828-CreateRouteHistoric.ts similarity index 92% rename from src/database/migrations/1660010491828-CreateRouteHistory.ts rename to src/database/migrations/1660010491828-CreateRouteHistoric.ts index 35680c8..7674bb0 100644 --- a/src/database/migrations/1660010491828-CreateRouteHistory.ts +++ b/src/database/migrations/1660010491828-CreateRouteHistoric.ts @@ -1,6 +1,6 @@ import {MigrationInterface, QueryRunner, Table} from "typeorm"; -export class CreateRouteHistory1660010491828 implements MigrationInterface { +export class CreateRouteHistoric1660010491828 implements MigrationInterface { public async up(queryRunner: QueryRunner): Promise { await queryRunner.createTable( From 26cac96cc61c545a46f312b6d1a1bf315986ffca Mon Sep 17 00:00:00 2001 From: Hugo Falcao Date: Wed, 10 Aug 2022 00:11:45 -0300 Subject: [PATCH 4/6] =?UTF-8?q?feat(database):=20:card=5Ffile=5Fbox:=20Def?= =?UTF-8?q?ine=20primeira=20vers=C3=A3o=20do=20banco=20de=20dados=20refere?= =?UTF-8?q?nte=20a=20funcionalidade=20de=20criar=20rotas?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../migrations/1659404395471-CreateRoutes.ts | 35 +++++- ...1660009211327-CreateNeighborhoodsServed.ts | 15 ++- .../1660009323138-CreateDestinations.ts | 85 ++++++++------- .../1660010452826-CreatePassengers.ts | 90 +++++++++++----- .../1660010491828-CreateRouteHistoric.ts | 102 ++++++++++++------ 5 files changed, 228 insertions(+), 99 deletions(-) diff --git a/src/database/migrations/1659404395471-CreateRoutes.ts b/src/database/migrations/1659404395471-CreateRoutes.ts index f8c75f7..f8a7574 100644 --- a/src/database/migrations/1659404395471-CreateRoutes.ts +++ b/src/database/migrations/1659404395471-CreateRoutes.ts @@ -1,4 +1,4 @@ -import { MigrationInterface, QueryRunner, Table } from 'typeorm'; +import { MigrationInterface, QueryRunner, Table, TableForeignKey, TableIndex } from 'typeorm'; export class CreateRoutes1659404395471 implements MigrationInterface { public async up(queryRunner: QueryRunner): Promise { @@ -21,6 +21,16 @@ export class CreateRoutes1659404395471 implements MigrationInterface { name: 'price', type: 'float', }, + { + name: 'days_of_week', + type: 'bit', + isNullable: true, + }, + { + name: 'specific_day', + type: 'date', + isNullable: true, + }, { name: 'estimated_departure_time', type: 'time', @@ -46,9 +56,32 @@ export class CreateRoutes1659404395471 implements MigrationInterface { ], }), ); + + await queryRunner.createForeignKey( + 'routes', + new TableForeignKey({ + name: 'routes_van_plate_fk', // nome da FK, serve para referenciar numa exclusão pelo QueryRunner se necessário + columnNames: ['van_plate'], // coluna que vai virar FK + referencedColumnNames: ['plate'], // coluna PK da primeira tabela + referencedTableName: 'vans', // nome da tabela que possui a PK + onDelete: 'SET NULL', + onUpdate: 'CASCADE', + }), + ); + + await queryRunner.createIndex( + 'routes', + new TableIndex({ + name: 'routes_idx', + columnNames: ['van_plate', 'days_of_week', 'specific_day', 'estimated_departure_time'], + isUnique: true, + }) + ); } public async down(queryRunner: QueryRunner): Promise { await queryRunner.dropTable('routes'); + await queryRunner.dropForeignKey('routes', 'routes_van_plate_fk'); + await queryRunner.dropIndex('routes', 'routes_idx'); } } diff --git a/src/database/migrations/1660009211327-CreateNeighborhoodsServed.ts b/src/database/migrations/1660009211327-CreateNeighborhoodsServed.ts index 5d17ece..904aa9a 100644 --- a/src/database/migrations/1660009211327-CreateNeighborhoodsServed.ts +++ b/src/database/migrations/1660009211327-CreateNeighborhoodsServed.ts @@ -1,4 +1,4 @@ -import { MigrationInterface, QueryRunner, Table } from 'typeorm'; +import { MigrationInterface, QueryRunner, Table, TableForeignKey } from 'typeorm'; export class CreateNeighborhoodsServed1660009211327 implements MigrationInterface @@ -34,9 +34,22 @@ export class CreateNeighborhoodsServed1660009211327 ], }), ); + + await queryRunner.createForeignKey( + 'neighborhoods_served', + new TableForeignKey({ + name: 'neighborhoods_served_route_id_fk', // nome da FK, serve para referenciar numa exclusão pelo QueryRunner se necessário + columnNames: ['route_id'], // coluna que vai virar FK + referencedColumnNames: ['id_route'], // coluna PK da tabela referenciada + referencedTableName: 'routes', // nome da tabela que possui a PK + onDelete: 'SET NULL', + onUpdate: 'CASCADE', + }), + ); } public async down(queryRunner: QueryRunner): Promise { await queryRunner.dropTable('neighborhoods_served'); + await queryRunner.dropForeignKey('neighborhoods_served', 'neighborhoods_served_route_id_fk'); } } diff --git a/src/database/migrations/1660009323138-CreateDestinations.ts b/src/database/migrations/1660009323138-CreateDestinations.ts index 9150f69..48db487 100644 --- a/src/database/migrations/1660009323138-CreateDestinations.ts +++ b/src/database/migrations/1660009323138-CreateDestinations.ts @@ -1,42 +1,53 @@ -import {MigrationInterface, QueryRunner, Table} from "typeorm"; +import { MigrationInterface, QueryRunner, Table, TableForeignKey } from 'typeorm'; export class CreateDestinations1660009323138 implements MigrationInterface { + public async up(queryRunner: QueryRunner): Promise { + await queryRunner.createTable( + new Table({ + name: 'destinations', + columns: [ + { + name: 'id_destination', + type: 'integer', + isPrimary: true, + isGenerated: true, + generationStrategy: 'increment', + }, + { + name: 'route_id', + type: 'integer', + }, + { + name: 'name', + type: 'varchar', + }, + { + name: 'latitude', + type: 'numeric', + }, + { + name: 'longitude', + type: 'numeric', + }, + ], + }), + ); - public async up(queryRunner: QueryRunner): Promise { - await queryRunner.createTable( - new Table({ - name: 'destinations', - columns: [ - { - name: 'id_destination', - type: 'integer', - isPrimary: true, - isGenerated: true, - generationStrategy: 'increment', - }, - { - name: 'route_id', - type: 'integer', - }, - { - name: 'name', - type: 'varchar', - }, - { - name: 'latitude', - type: 'numeric', - }, - { - name: 'longitude', - type: 'numeric', - } - ], - }), - ); - } - - public async down(queryRunner: QueryRunner): Promise { - await queryRunner.dropTable('destinations'); - } + await queryRunner.createForeignKey( + 'destinations', + new TableForeignKey({ + name: 'destinations_route_id_fk', // nome da FK, serve para referenciar numa exclusão pelo QueryRunner se necessário + columnNames: ['route_id'], // coluna que vai virar FK + referencedColumnNames: ['id_route'], // coluna PK da tabela referenciada + referencedTableName: 'routes', // nome da tabela que possui a PK + onDelete: 'SET NULL', + onUpdate: 'CASCADE', + }), + ); + } + public async down(queryRunner: QueryRunner): Promise { + await queryRunner.dropTable('destinations'); + await queryRunner.dropForeignKey('destinations', 'destinations_route_id_fk'); + } } diff --git a/src/database/migrations/1660010452826-CreatePassengers.ts b/src/database/migrations/1660010452826-CreatePassengers.ts index c1753c3..6570d85 100644 --- a/src/database/migrations/1660010452826-CreatePassengers.ts +++ b/src/database/migrations/1660010452826-CreatePassengers.ts @@ -1,34 +1,68 @@ -import {MigrationInterface, QueryRunner, Table} from "typeorm"; +import { MigrationInterface, QueryRunner, Table, TableForeignKey, TableIndex } from 'typeorm'; export class CreatePassengers1660010452826 implements MigrationInterface { + public async up(queryRunner: QueryRunner): Promise { + await queryRunner.createTable( + new Table({ + name: 'passengers', + columns: [ + { + name: 'id_passenger', + type: 'integer', + isPrimary: true, + isGenerated: true, + generationStrategy: 'increment', + }, + { + name: 'route_id', + type: 'integer', + }, + { + name: 'user_id', + type: 'uuid', + }, + ], + }), + ); - public async up(queryRunner: QueryRunner): Promise { - await queryRunner.createTable( - new Table({ - name: 'passengers', - columns: [ - { - name: 'id_passenger', - type: 'integer', - isPrimary: true, - isGenerated: true, - generationStrategy: 'increment', - }, - { - name: 'route_id', - type: 'integer', - }, - { - name: 'user_id', - type: 'uuid', - } - ], - }), - ); - } + await queryRunner.createForeignKey( + 'passengers', + new TableForeignKey({ + name: 'passengers_route_id_fk', // nome da FK, serve para referenciar numa exclusão pelo QueryRunner se necessário + columnNames: ['route_id'], // coluna que vai virar FK + referencedColumnNames: ['id_route'], // coluna PK da tabela referenciada + referencedTableName: 'routes', // nome da tabela que possui a PK + onDelete: 'SET NULL', + onUpdate: 'CASCADE', + }), + ); - public async down(queryRunner: QueryRunner): Promise { - await queryRunner.dropTable('passengers'); - } + await queryRunner.createForeignKey( + 'passengers', + new TableForeignKey({ + name: 'passengers_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', + new TableIndex({ + name: 'passengers_route_user_idx', + columnNames: ['route_id', 'user_id'], + isUnique: true, + }), + ); + } + + public async down(queryRunner: QueryRunner): Promise { + await queryRunner.dropTable('passengers'); + await queryRunner.dropForeignKey('passengers', 'passengers_route_id_fk'); + await queryRunner.dropForeignKey('passengers', 'passengers_user_id_fk'); + await queryRunner.dropIndex('passengers', 'passengers_route_user_idx'); + } } diff --git a/src/database/migrations/1660010491828-CreateRouteHistoric.ts b/src/database/migrations/1660010491828-CreateRouteHistoric.ts index 7674bb0..5372f32 100644 --- a/src/database/migrations/1660010491828-CreateRouteHistoric.ts +++ b/src/database/migrations/1660010491828-CreateRouteHistoric.ts @@ -1,38 +1,76 @@ -import {MigrationInterface, QueryRunner, Table} from "typeorm"; +import { MigrationInterface, QueryRunner, Table, TableForeignKey, TableIndex } from 'typeorm'; export class CreateRouteHistoric1660010491828 implements MigrationInterface { + public async up(queryRunner: QueryRunner): Promise { + await queryRunner.createTable( + new Table({ + name: 'route_historic', + columns: [ + { + name: 'id_historic', + type: 'integer', + isPrimary: true, + isGenerated: true, + generationStrategy: 'increment', + }, + { + name: 'route_id', + type: 'integer', + }, + { + name: 'user_id', + type: 'uuid', + }, + { + name: 'is_return', + type: 'boolean', + }, + { + name: 'date', + type: 'date', + }, + ], + }), + ); - public async up(queryRunner: QueryRunner): Promise { - await queryRunner.createTable( - new Table({ - name: 'route_historic', - columns: [ - { - name: 'id_historic', - type: 'integer', - isPrimary: true, - isGenerated: true, - generationStrategy: 'increment', - }, - { - name: 'route_id', - type: 'integer', - }, - { - name: 'user_id', - type: 'uuid', - }, - { - name: 'date', - type: 'date', - }, - ], - }), - ); - } + await queryRunner.createForeignKey( + 'route_historic', + new TableForeignKey({ + name: 'route_historic_route_id_fk', // nome da FK, serve para referenciar numa exclusão pelo QueryRunner se necessário + columnNames: ['route_id'], // coluna que vai virar FK + referencedColumnNames: ['id_route'], // coluna PK da tabela referenciada + referencedTableName: 'routes', // nome da tabela que possui a PK + onDelete: 'SET NULL', + onUpdate: 'CASCADE', + }), + ); - public async down(queryRunner: QueryRunner): Promise { - await queryRunner.dropTable('route_historic'); - } + await queryRunner.createForeignKey( + 'route_historic', + new TableForeignKey({ + name: 'route_historic_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( + 'route_historic', + new TableIndex({ + name: 'route_historic_idx', + columnNames: ['route_id', 'user_id', 'is_return', 'date'], + isUnique: true, + }), + ); + } + + public async down(queryRunner: QueryRunner): Promise { + await queryRunner.dropTable('route_historic'); + await queryRunner.dropForeignKey('route_historic', 'route_historic_route_id_fk'); + await queryRunner.dropForeignKey('route_historic', 'route_historic_user_id_fk'); + await queryRunner.dropIndex('route_historic', 'route_historic_idx'); + } } From 46de7723706a58737c5017a5364e269fbbb8483d Mon Sep 17 00:00:00 2001 From: Hugo Falcao Date: Mon, 15 Aug 2022 23:49:23 -0300 Subject: [PATCH 5/6] refactor: :recycle: Renomeia a tabela Routes para Itineraries e seus index e fks --- ...s.ts => 1659404395471-CreateItineraries.ts} | 8 ++++++-- .../1660009211327-CreateNeighborhoodsServed.ts | 12 ++++++------ .../1660009323138-CreateDestinations.ts | 12 ++++++------ .../1660010452826-CreatePassengers.ts | 18 +++++++++--------- .../1660010491828-CreateRouteHistoric.ts | 18 +++++++++--------- 5 files changed, 36 insertions(+), 32 deletions(-) rename src/database/migrations/{1659404395471-CreateRoutes.ts => 1659404395471-CreateItineraries.ts} (91%) diff --git a/src/database/migrations/1659404395471-CreateRoutes.ts b/src/database/migrations/1659404395471-CreateItineraries.ts similarity index 91% rename from src/database/migrations/1659404395471-CreateRoutes.ts rename to src/database/migrations/1659404395471-CreateItineraries.ts index f8a7574..a2de6bc 100644 --- a/src/database/migrations/1659404395471-CreateRoutes.ts +++ b/src/database/migrations/1659404395471-CreateItineraries.ts @@ -1,13 +1,13 @@ import { MigrationInterface, QueryRunner, Table, TableForeignKey, TableIndex } from 'typeorm'; -export class CreateRoutes1659404395471 implements MigrationInterface { +export class CreateItineraries1659404395471 implements MigrationInterface { public async up(queryRunner: QueryRunner): Promise { await queryRunner.createTable( new Table({ name: 'routes', columns: [ { - name: 'id_route', + name: 'id_itinerary', type: 'integer', isPrimary: true, isGenerated: true, @@ -43,6 +43,10 @@ export class CreateRoutes1659404395471 implements MigrationInterface { name: 'available_seats', type: 'integer', }, + { + name: 'itinerary_nickname', + type: 'varchar', + }, { name: 'created_at', type: 'timestamp', diff --git a/src/database/migrations/1660009211327-CreateNeighborhoodsServed.ts b/src/database/migrations/1660009211327-CreateNeighborhoodsServed.ts index 904aa9a..d7f55d8 100644 --- a/src/database/migrations/1660009211327-CreateNeighborhoodsServed.ts +++ b/src/database/migrations/1660009211327-CreateNeighborhoodsServed.ts @@ -16,7 +16,7 @@ export class CreateNeighborhoodsServed1660009211327 generationStrategy: 'increment', }, { - name: 'route_id', + name: 'itinerary_id', type: 'integer', }, { @@ -38,10 +38,10 @@ export class CreateNeighborhoodsServed1660009211327 await queryRunner.createForeignKey( 'neighborhoods_served', new TableForeignKey({ - name: 'neighborhoods_served_route_id_fk', // nome da FK, serve para referenciar numa exclusão pelo QueryRunner se necessário - columnNames: ['route_id'], // coluna que vai virar FK - referencedColumnNames: ['id_route'], // coluna PK da tabela referenciada - referencedTableName: 'routes', // nome da tabela que possui a PK + name: 'neighborhoods_served_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', }), @@ -50,6 +50,6 @@ export class CreateNeighborhoodsServed1660009211327 public async down(queryRunner: QueryRunner): Promise { await queryRunner.dropTable('neighborhoods_served'); - await queryRunner.dropForeignKey('neighborhoods_served', 'neighborhoods_served_route_id_fk'); + await queryRunner.dropForeignKey('neighborhoods_served', 'neighborhoods_served_itinerary_id_fk'); } } diff --git a/src/database/migrations/1660009323138-CreateDestinations.ts b/src/database/migrations/1660009323138-CreateDestinations.ts index 48db487..0c49875 100644 --- a/src/database/migrations/1660009323138-CreateDestinations.ts +++ b/src/database/migrations/1660009323138-CreateDestinations.ts @@ -14,7 +14,7 @@ export class CreateDestinations1660009323138 implements MigrationInterface { generationStrategy: 'increment', }, { - name: 'route_id', + name: 'itinerary_id', type: 'integer', }, { @@ -36,10 +36,10 @@ export class CreateDestinations1660009323138 implements MigrationInterface { await queryRunner.createForeignKey( 'destinations', new TableForeignKey({ - name: 'destinations_route_id_fk', // nome da FK, serve para referenciar numa exclusão pelo QueryRunner se necessário - columnNames: ['route_id'], // coluna que vai virar FK - referencedColumnNames: ['id_route'], // coluna PK da tabela referenciada - referencedTableName: 'routes', // nome da tabela que possui a PK + name: 'destinations_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', }), @@ -48,6 +48,6 @@ export class CreateDestinations1660009323138 implements MigrationInterface { public async down(queryRunner: QueryRunner): Promise { await queryRunner.dropTable('destinations'); - await queryRunner.dropForeignKey('destinations', 'destinations_route_id_fk'); + await queryRunner.dropForeignKey('destinations', 'destinations_itinerary_id_fk'); } } diff --git a/src/database/migrations/1660010452826-CreatePassengers.ts b/src/database/migrations/1660010452826-CreatePassengers.ts index 6570d85..9a0fd6d 100644 --- a/src/database/migrations/1660010452826-CreatePassengers.ts +++ b/src/database/migrations/1660010452826-CreatePassengers.ts @@ -14,7 +14,7 @@ export class CreatePassengers1660010452826 implements MigrationInterface { generationStrategy: 'increment', }, { - name: 'route_id', + name: 'itinerary_id', type: 'integer', }, { @@ -28,10 +28,10 @@ export class CreatePassengers1660010452826 implements MigrationInterface { await queryRunner.createForeignKey( 'passengers', new TableForeignKey({ - name: 'passengers_route_id_fk', // nome da FK, serve para referenciar numa exclusão pelo QueryRunner se necessário - columnNames: ['route_id'], // coluna que vai virar FK - referencedColumnNames: ['id_route'], // coluna PK da tabela referenciada - referencedTableName: 'routes', // nome da tabela que possui a PK + name: 'passengers_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', }), @@ -52,8 +52,8 @@ export class CreatePassengers1660010452826 implements MigrationInterface { await queryRunner.createIndex( 'passengers', new TableIndex({ - name: 'passengers_route_user_idx', - columnNames: ['route_id', 'user_id'], + name: 'passengers_itinerary_user_idx', + columnNames: ['itinerary_id', 'user_id'], isUnique: true, }), ); @@ -61,8 +61,8 @@ export class CreatePassengers1660010452826 implements MigrationInterface { public async down(queryRunner: QueryRunner): Promise { await queryRunner.dropTable('passengers'); - await queryRunner.dropForeignKey('passengers', 'passengers_route_id_fk'); + await queryRunner.dropForeignKey('passengers', 'passengers_itinerary_id_fk'); await queryRunner.dropForeignKey('passengers', 'passengers_user_id_fk'); - await queryRunner.dropIndex('passengers', 'passengers_route_user_idx'); + await queryRunner.dropIndex('passengers', 'passengers_itinerary_user_idx'); } } diff --git a/src/database/migrations/1660010491828-CreateRouteHistoric.ts b/src/database/migrations/1660010491828-CreateRouteHistoric.ts index 5372f32..095e67a 100644 --- a/src/database/migrations/1660010491828-CreateRouteHistoric.ts +++ b/src/database/migrations/1660010491828-CreateRouteHistoric.ts @@ -14,7 +14,7 @@ export class CreateRouteHistoric1660010491828 implements MigrationInterface { generationStrategy: 'increment', }, { - name: 'route_id', + name: 'itinerary_id', type: 'integer', }, { @@ -36,10 +36,10 @@ export class CreateRouteHistoric1660010491828 implements MigrationInterface { await queryRunner.createForeignKey( 'route_historic', new TableForeignKey({ - name: 'route_historic_route_id_fk', // nome da FK, serve para referenciar numa exclusão pelo QueryRunner se necessário - columnNames: ['route_id'], // coluna que vai virar FK - referencedColumnNames: ['id_route'], // coluna PK da tabela referenciada - referencedTableName: 'routes', // nome da tabela que possui a PK + name: 'route_historic_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', }), @@ -60,8 +60,8 @@ export class CreateRouteHistoric1660010491828 implements MigrationInterface { await queryRunner.createIndex( 'route_historic', new TableIndex({ - name: 'route_historic_idx', - columnNames: ['route_id', 'user_id', 'is_return', 'date'], + name: 'itinerary_historic_idx', + columnNames: ['itinerary_id', 'user_id', 'is_return', 'date'], isUnique: true, }), ); @@ -69,8 +69,8 @@ export class CreateRouteHistoric1660010491828 implements MigrationInterface { public async down(queryRunner: QueryRunner): Promise { await queryRunner.dropTable('route_historic'); - await queryRunner.dropForeignKey('route_historic', 'route_historic_route_id_fk'); + await queryRunner.dropForeignKey('route_historic', 'route_historic_itinerary_id_fk'); await queryRunner.dropForeignKey('route_historic', 'route_historic_user_id_fk'); - await queryRunner.dropIndex('route_historic', 'route_historic_idx'); + await queryRunner.dropIndex('route_historic', 'itinerary_historic_idx'); } } From 640935116b8339b7bc19fa8aca74571d05f5058b Mon Sep 17 00:00:00 2001 From: Hugo Falcao Date: Mon, 15 Aug 2022 23:59:27 -0300 Subject: [PATCH 6/6] refactor: Muda o nome da tabela de Routes para Itineraries --- .../1659404395471-CreateItineraries.ts | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/src/database/migrations/1659404395471-CreateItineraries.ts b/src/database/migrations/1659404395471-CreateItineraries.ts index a2de6bc..0ff2d25 100644 --- a/src/database/migrations/1659404395471-CreateItineraries.ts +++ b/src/database/migrations/1659404395471-CreateItineraries.ts @@ -4,7 +4,7 @@ export class CreateItineraries1659404395471 implements MigrationInterface { public async up(queryRunner: QueryRunner): Promise { await queryRunner.createTable( new Table({ - name: 'routes', + name: 'itineraries', columns: [ { name: 'id_itinerary', @@ -62,9 +62,9 @@ export class CreateItineraries1659404395471 implements MigrationInterface { ); await queryRunner.createForeignKey( - 'routes', + 'itineraries', new TableForeignKey({ - name: 'routes_van_plate_fk', // nome da FK, serve para referenciar numa exclusão pelo QueryRunner se necessário + name: 'itineraries_van_plate_fk', // nome da FK, serve para referenciar numa exclusão pelo QueryRunner se necessário columnNames: ['van_plate'], // coluna que vai virar FK referencedColumnNames: ['plate'], // coluna PK da primeira tabela referencedTableName: 'vans', // nome da tabela que possui a PK @@ -74,9 +74,9 @@ export class CreateItineraries1659404395471 implements MigrationInterface { ); await queryRunner.createIndex( - 'routes', + 'itineraries', new TableIndex({ - name: 'routes_idx', + name: 'itineraries_idx', columnNames: ['van_plate', 'days_of_week', 'specific_day', 'estimated_departure_time'], isUnique: true, }) @@ -84,8 +84,8 @@ export class CreateItineraries1659404395471 implements MigrationInterface { } public async down(queryRunner: QueryRunner): Promise { - await queryRunner.dropTable('routes'); - await queryRunner.dropForeignKey('routes', 'routes_van_plate_fk'); - await queryRunner.dropIndex('routes', 'routes_idx'); + await queryRunner.dropTable('itineraries'); + await queryRunner.dropForeignKey('itineraries', 'itineraries_van_plate_fk'); + await queryRunner.dropIndex('itineraries', 'itineraries_idx'); } }