Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
137 changes: 88 additions & 49 deletions package-lock.json

Large diffs are not rendered by default.

15 changes: 13 additions & 2 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@
"test:cov": "jest --coverage",
"test:debug": "node --inspect-brk -r tsconfig-paths/register -r ts-node/register node_modules/.bin/jest --runInBand",
"test:e2e": "jest --config ./test/jest-e2e.json",
"seed": "ts-node --transpile-only src/prisma/seed.ts"
"seed": "ts-node --transpile-only prisma/seed.ts"
},
"dependencies": {
"@nestjs/cli": "^11.0.10",
Expand All @@ -32,13 +32,17 @@
"@nestjs/passport": "^11.0.5",
"@nestjs/platform-express": "^11.1.6",
"@nestjs/swagger": "^11.2.1",
<<<<<<< HEAD
"@prisma/client": "^6.19.0",
=======
"@prisma/client": "^6.17.1",
"@types/bcrypt": "^6.0.0",
"@types/express": "^5.0.3",
"@types/multer": "^2.0.0",
"@types/node": "^24.9.1",
"@types/nodemailer": "^7.0.2",
"@types/passport-jwt": "^4.0.1",
>>>>>>> d490ac7d89576ca24f0665c24fe76b4ab8e51d74
"bcrypt": "^6.0.0",
"bcryptjs": "^3.0.2",
"chalk": "^4.1.2",
Expand All @@ -48,8 +52,11 @@
"nodemailer": "^7.0.9",
"passport": "^0.7.0",
"passport-jwt": "^4.0.1",
<<<<<<< HEAD
=======
"pg": "^8.16.3",
"prisma": "^6.17.1",
>>>>>>> d490ac7d89576ca24f0665c24fe76b4ab8e51d74
"reflect-metadata": "^0.2.2",
"rxjs": "^7.8.2",
"swagger-ui-express": "^5.0.1",
Expand All @@ -69,6 +76,7 @@
"globals": "^16.4.0",
"jest": "^30.2.0",
"prettier": "^3.6.2",
"prisma": "^6.19.0",
"source-map-support": "^0.5.21",
"supertest": "^7.1.4",
"ts-jest": "^29.4.5",
Expand All @@ -95,6 +103,9 @@
"testEnvironment": "node",
"transformIgnorePatterns": [
"node_modules/(?!(uuid)/)"
]
],
"prisma": {
"seed": "ts-node --transpile-only prisma/seed.ts"
}
}
}
2 changes: 2 additions & 0 deletions prisma/migrations/20251108210157_init/migration.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
-- AlterTable
ALTER TABLE `ruta` MODIFY `tiempoEstimado` VARCHAR(10) NULL;
73 changes: 73 additions & 0 deletions prisma/migrations/20251110230537_nuevas_tablas/migration.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,73 @@
-- CreateTable
CREATE TABLE `MetodoPago` (
`idMetodoPago` VARCHAR(36) NOT NULL,
`nombreMetodo` VARCHAR(50) NOT NULL,

PRIMARY KEY (`idMetodoPago`)
) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

-- CreateTable
CREATE TABLE `Conductores` (
`idConductor` VARCHAR(36) NOT NULL,
`idUsuario` VARCHAR(36) NOT NULL,
`licencia` VARCHAR(50) NOT NULL,
`categoriaLicencia` VARCHAR(20) NOT NULL,
`fechaVencimientoLicencia` DATETIME(3) NOT NULL,
`idArl` VARCHAR(36) NULL,
`idEps` VARCHAR(36) NULL,
`fondoPensiones` VARCHAR(50) NULL,
`estado` BOOLEAN NOT NULL,

PRIMARY KEY (`idConductor`)
) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

-- CreateTable
CREATE TABLE `ReservasPrivadas` (
`idReservaPrivada` VARCHAR(36) NOT NULL,
`idUsuario` VARCHAR(36) NOT NULL,
`idVehiculo` VARCHAR(36) NOT NULL,
`idConductor` VARCHAR(36) NOT NULL,
`idRuta` VARCHAR(36) NOT NULL,
`fecha` DATETIME(3) NOT NULL,
`horaSalida` VARCHAR(10) NOT NULL,
`cantidadPersonas` INTEGER NOT NULL,
`precioTotal` DECIMAL(10, 2) NULL,
`idMetodoPago` VARCHAR(36) NOT NULL,
`estadoReserva` VARCHAR(50) NOT NULL,
`fechaReserva` DATETIME(3) NOT NULL,

PRIMARY KEY (`idReservaPrivada`)
) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

-- CreateTable
CREATE TABLE `DetalleReservaPrivadaPasajero` (
`idDetalle` VARCHAR(36) NOT NULL,
`idReservaPrivada` VARCHAR(36) NOT NULL,
`nombrePasajero` VARCHAR(100) NOT NULL,
`tipoDoc` VARCHAR(36) NOT NULL,
`numDocPasajero` VARCHAR(20) NOT NULL,
`edadPasajero` INTEGER NOT NULL,

PRIMARY KEY (`idDetalle`)
) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

-- AddForeignKey
ALTER TABLE `Conductores` ADD CONSTRAINT `Conductores_idUsuario_fkey` FOREIGN KEY (`idUsuario`) REFERENCES `Usuarios`(`idUsuario`) ON DELETE RESTRICT ON UPDATE CASCADE;

-- AddForeignKey
ALTER TABLE `ReservasPrivadas` ADD CONSTRAINT `ReservasPrivadas_idUsuario_fkey` FOREIGN KEY (`idUsuario`) REFERENCES `Usuarios`(`idUsuario`) ON DELETE RESTRICT ON UPDATE CASCADE;

-- AddForeignKey
ALTER TABLE `ReservasPrivadas` ADD CONSTRAINT `ReservasPrivadas_idVehiculo_fkey` FOREIGN KEY (`idVehiculo`) REFERENCES `Vehiculos`(`idVehiculo`) ON DELETE RESTRICT ON UPDATE CASCADE;

-- AddForeignKey
ALTER TABLE `ReservasPrivadas` ADD CONSTRAINT `ReservasPrivadas_idConductor_fkey` FOREIGN KEY (`idConductor`) REFERENCES `Conductores`(`idConductor`) ON DELETE RESTRICT ON UPDATE CASCADE;

-- AddForeignKey
ALTER TABLE `ReservasPrivadas` ADD CONSTRAINT `ReservasPrivadas_idRuta_fkey` FOREIGN KEY (`idRuta`) REFERENCES `Ruta`(`idRuta`) ON DELETE RESTRICT ON UPDATE CASCADE;

-- AddForeignKey
ALTER TABLE `ReservasPrivadas` ADD CONSTRAINT `ReservasPrivadas_idMetodoPago_fkey` FOREIGN KEY (`idMetodoPago`) REFERENCES `MetodoPago`(`idMetodoPago`) ON DELETE RESTRICT ON UPDATE CASCADE;

-- AddForeignKey
ALTER TABLE `DetalleReservaPrivadaPasajero` ADD CONSTRAINT `DetalleReservaPrivadaPasajero_idReservaPrivada_fkey` FOREIGN KEY (`idReservaPrivada`) REFERENCES `ReservasPrivadas`(`idReservaPrivada`) ON DELETE RESTRICT ON UPDATE CASCADE;
21 changes: 21 additions & 0 deletions prisma/migrations/20251118235141_new/migration.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
-- DropForeignKey
ALTER TABLE `reservasprivadas` DROP FOREIGN KEY `ReservasPrivadas_idConductor_fkey`;

-- DropForeignKey
ALTER TABLE `reservasprivadas` DROP FOREIGN KEY `ReservasPrivadas_idVehiculo_fkey`;

-- DropIndex
DROP INDEX `ReservasPrivadas_idConductor_fkey` ON `reservasprivadas`;

-- DropIndex
DROP INDEX `ReservasPrivadas_idVehiculo_fkey` ON `reservasprivadas`;

-- AlterTable
ALTER TABLE `reservasprivadas` MODIFY `idVehiculo` VARCHAR(36) NULL,
MODIFY `idConductor` VARCHAR(36) NULL;

-- AddForeignKey
ALTER TABLE `ReservasPrivadas` ADD CONSTRAINT `ReservasPrivadas_idVehiculo_fkey` FOREIGN KEY (`idVehiculo`) REFERENCES `Vehiculos`(`idVehiculo`) ON DELETE SET NULL ON UPDATE CASCADE;

-- AddForeignKey
ALTER TABLE `ReservasPrivadas` ADD CONSTRAINT `ReservasPrivadas_idConductor_fkey` FOREIGN KEY (`idConductor`) REFERENCES `Conductores`(`idConductor`) ON DELETE SET NULL ON UPDATE CASCADE;
11 changes: 11 additions & 0 deletions prisma/migrations/20251118235536_newdos/migration.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
/*
Warnings:

- You are about to drop the `ubicaciones` table. If the table is not empty, all the data it contains will be lost.

*/
-- DropIndex
DROP INDEX `Vehiculos_placa_idx` ON `vehiculos`;

-- DropTable
DROP TABLE `ubicaciones`;
13 changes: 13 additions & 0 deletions prisma/prisma.service.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
import { Injectable, OnModuleInit, OnModuleDestroy } from '@nestjs/common';
import { PrismaClient } from '@prisma/client';

@Injectable()
export class PrismaService extends PrismaClient implements OnModuleInit, OnModuleDestroy {
async onModuleInit() {
await this.$connect();
}

async onModuleDestroy() {
await this.$disconnect();
}
}
97 changes: 87 additions & 10 deletions prisma/schema.prisma
Original file line number Diff line number Diff line change
@@ -1,9 +1,3 @@
// This is your Prisma schema file,
// learn more about it in the docs: https://pris.ly/d/prisma-schema

// Looking for ways to speed up your queries, or scale easily with your serverless or edge functions?
// Try Prisma Accelerate: https://pris.ly/cli/accelerate-init

generator client {
provider = "prisma-client-js"
}
Expand Down Expand Up @@ -36,6 +30,9 @@ model Usuarios {
conductor Conductores?
vehiculosPropios Vehiculos[] @relation("VehiculoPropietario")

conductores Conductores[]
reservasPrivadas ReservasPrivadas[]

@@map("Usuarios")
}

Expand Down Expand Up @@ -127,6 +124,13 @@ model Vehiculos {
conductorAsignado Conductores? @relation("VehiculoConductorAsignado", fields: [idConductorAsignado], references: [idConductor])
turnos Turnos[]

<<<<<<< HEAD
reservasPrivadas ReservasPrivadas[]

@@map("Vehiculos")
}

=======
@@index([idTipoVehiculo])
@@index([idMarcaVehiculo])
@@index([idPropietario])
Expand All @@ -148,36 +152,40 @@ model Ubicaciones {
@@map("Ubicaciones")
}

>>>>>>> d490ac7d89576ca24f0665c24fe76b4ab8e51d74
model Ubicacion {
idUbicacion String @id @default(uuid()) @db.VarChar(36)
nombreUbicacion String @db.VarChar(100)
direccion String @db.VarChar(255)
latitud Decimal? @db.Decimal(10, 8)
longitud Decimal? @db.Decimal(11, 8)

// Relaciones
origenes Origen[]
destinos Destino[]

@@map("Ubicacion")
}

model Origen {
idOrigen String @id @default(uuid()) @db.VarChar(36)
idUbicacion String @db.VarChar(36)
descripcion String? @db.VarChar(255)

// Relaciones
ubicacion Ubicacion @relation(fields: [idUbicacion], references: [idUbicacion])
rutasOrigen Ruta[] @relation("RutasDesdeOrigen")

@@map("Origen")
}

model Destino {
idDestino String @id @default(uuid()) @db.VarChar(36)
idUbicacion String @db.VarChar(36)
descripcion String? @db.VarChar(255)

// Relaciones
ubicacion Ubicacion @relation(fields: [idUbicacion], references: [idUbicacion])
rutasDestino Ruta[] @relation("RutasHaciaDestino")

@@map("Destino")
}

model Ruta {
Expand All @@ -190,11 +198,79 @@ model Ruta {
precioBase Decimal? @db.Decimal(10, 2)
estado String? @db.VarChar(50)

// Relaciones
origen Origen @relation("RutasDesdeOrigen", fields: [idOrigen], references: [idOrigen])
destino Destino @relation("RutasHaciaDestino", fields: [idDestino], references: [idDestino])

reservasPrivadas ReservasPrivadas[]

@@map("Ruta")
}

<<<<<<< HEAD
model MetodoPago {
idMetodoPago String @id @db.VarChar(36)
nombreMetodo String @db.VarChar(50)

reservasPrivadas ReservasPrivadas[]

@@map("MetodoPago")
}

model Conductores {
idConductor String @id @db.VarChar(36)
idUsuario String @db.VarChar(36)
licencia String @db.VarChar(50)
categoriaLicencia String @db.VarChar(20)
fechaVencimientoLicencia DateTime
idArl String? @db.VarChar(36)
idEps String? @db.VarChar(36)
fondoPensiones String? @db.VarChar(50)
estado Boolean

usuario Usuarios @relation(fields: [idUsuario], references: [idUsuario])
reservasPrivadas ReservasPrivadas[]

@@map("Conductores")
}

model ReservasPrivadas {
idReservaPrivada String @id @default(uuid()) @db.VarChar(36)
idUsuario String @db.VarChar(36)
idVehiculo String? @db.VarChar(36)
idConductor String? @db.VarChar(36)
idRuta String @db.VarChar(36)
fecha DateTime
horaSalida String @db.VarChar(10)
cantidadPersonas Int
precioTotal Decimal? @db.Decimal(10, 2)
idMetodoPago String @db.VarChar(36)
estadoReserva String @db.VarChar(50)
fechaReserva DateTime

usuario Usuarios @relation(fields: [idUsuario], references: [idUsuario])
vehiculo Vehiculos? @relation(fields: [idVehiculo], references: [idVehiculo])
conductor Conductores? @relation(fields: [idConductor], references: [idConductor])
ruta Ruta @relation(fields: [idRuta], references: [idRuta])
metodoPago MetodoPago @relation(fields: [idMetodoPago], references: [idMetodoPago])

detalles DetalleReservaPrivadaPasajero[]

@@map("ReservasPrivadas")
}

model DetalleReservaPrivadaPasajero {
idDetalle String @id @default(uuid()) @db.VarChar(36)
idReservaPrivada String @db.VarChar(36)
nombrePasajero String @db.VarChar(100)
tipoDoc String @db.VarChar(36)
numDocPasajero String @db.VarChar(20)
edadPasajero Int

reserva ReservasPrivadas @relation(fields: [idReservaPrivada], references: [idReservaPrivada])

@@map("DetalleReservaPrivadaPasajero")
}
=======
model CategoriasLicencia {
idCategoriaLicencia String @id @default(uuid()) @db.VarChar(36)
nombreCategoria String @unique @db.VarChar(10) // A1, A2, B1, B2, B3, C1, C2, C3
Expand Down Expand Up @@ -253,3 +329,4 @@ model Turnos {
@@index([estado])
@@map("Turnos")
}
>>>>>>> d490ac7d89576ca24f0665c24fe76b4ab8e51d74
Loading
Loading