From a82e8af316f97b8fef2dcfeee4b529898198bd34 Mon Sep 17 00:00:00 2001 From: karol Date: Fri, 5 Jun 2026 15:22:14 +0000 Subject: [PATCH] =?UTF-8?q?Implementaci=C3=B3n=20modulo=20configuraci?= =?UTF-8?q?=C3=B3n=20adicional=20de=20vehiculos?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- backend/src/app.ts | 2 + backend/src/modules/auth/auth.service.ts | 1 - .../fuel_prices/fuelPrices.interface.ts | 4 +- .../modules/fuel_prices/fuelPrices.model.ts | 2 - .../vehiclesConfig.controller.ts | 64 +++++++++++++++++++ .../vehiclesConfig.interface.ts | 11 ++++ .../vehicles-config/vehiclesConfig.model.ts | 41 ++++++++++++ .../vehicles-config/vehiclesConfig.service.ts | 48 ++++++++++++++ .../vehicles-config/vehiclesConfigs.routes.ts | 19 ++++++ 9 files changed, 187 insertions(+), 5 deletions(-) create mode 100644 backend/src/modules/vehicles-config/vehiclesConfig.controller.ts create mode 100644 backend/src/modules/vehicles-config/vehiclesConfig.interface.ts create mode 100644 backend/src/modules/vehicles-config/vehiclesConfig.model.ts create mode 100644 backend/src/modules/vehicles-config/vehiclesConfig.service.ts create mode 100644 backend/src/modules/vehicles-config/vehiclesConfigs.routes.ts diff --git a/backend/src/app.ts b/backend/src/app.ts index db89af4..2dab59e 100644 --- a/backend/src/app.ts +++ b/backend/src/app.ts @@ -7,6 +7,7 @@ import authRouter from "./modules/auth/auth.routes"; import fuelRoutes from "./modules/fuel-types/fuelType.routes"; import fuelPriceRoute from "./modules/fuel_prices/fuelPrices.routes"; import fuelPumpRouter from "./modules/fuel_pumps/fuelPump.routes"; +import vehicleConfigRouter from "./modules/vehicles-config/vehiclesConfigs.routes"; @@ -21,6 +22,7 @@ app.use("/api/fuel", fuelRoutes); app.use("/api/auth", authRouter); app.use("/api/fuelprice", fuelPriceRoute); app.use("/api/pump", fuelPumpRouter); +app.use("/api/vconfig", vehicleConfigRouter); app.use(express.urlencoded({ diff --git a/backend/src/modules/auth/auth.service.ts b/backend/src/modules/auth/auth.service.ts index 8ab9b78..264ad95 100644 --- a/backend/src/modules/auth/auth.service.ts +++ b/backend/src/modules/auth/auth.service.ts @@ -1,7 +1,6 @@ import bcrypt from "bcrypt"; import jwt from "jsonwebtoken"; import userModel from "../user/user.model"; -import { resolve } from "dns/promises"; export class AuthService { diff --git a/backend/src/modules/fuel_prices/fuelPrices.interface.ts b/backend/src/modules/fuel_prices/fuelPrices.interface.ts index 7a252f0..dd5dba5 100644 --- a/backend/src/modules/fuel_prices/fuelPrices.interface.ts +++ b/backend/src/modules/fuel_prices/fuelPrices.interface.ts @@ -1,8 +1,8 @@ import mongoose, { mongo, ObjectId } from "mongoose"; -export interface IFuelPrince { +export interface IFuelPrice { - fueltypeId:ObjectId; + fuelTypeId:ObjectId; pricePerGallon:number; effectiveFrom:Date; diff --git a/backend/src/modules/fuel_prices/fuelPrices.model.ts b/backend/src/modules/fuel_prices/fuelPrices.model.ts index f4161f2..c3b8755 100644 --- a/backend/src/modules/fuel_prices/fuelPrices.model.ts +++ b/backend/src/modules/fuel_prices/fuelPrices.model.ts @@ -16,12 +16,10 @@ const fuelPriceSchema = new mongoose.Schema({ effetiveFrom:{ type:Date, - required:true }, effetiveTo:{ type:Date, - required:true }, active:{ diff --git a/backend/src/modules/vehicles-config/vehiclesConfig.controller.ts b/backend/src/modules/vehicles-config/vehiclesConfig.controller.ts new file mode 100644 index 0000000..d08b6a7 --- /dev/null +++ b/backend/src/modules/vehicles-config/vehiclesConfig.controller.ts @@ -0,0 +1,64 @@ +import { Request, Response } from "express"; + +import { VehicleConfigService } from "./vehiclesConfig.service"; + +const vehicleConfigService = new VehicleConfigService(); + +export class VehicleConfigController { + + async getAll( + req:Request, + res:Response + ){ + const vehicleConfigs = await vehicleConfigService.getAll(); + + res.json(vehicleConfigs); + } + + async getById( + req:Request, + res:Response + ){ + const vehicleConfig = await vehicleConfigService.getById( + req.params.id as string + ); + + res.json(vehicleConfig); + } + + async create ( + req:Request, + res:Response + ){ + const vehicleConfig = await vehicleConfigService.create( + req.body + ); + + res.status(201).json(vehicleConfig); + } + + async update( + req:Request, + res:Response + ){ + const vehicleConfig = await vehicleConfigService.update( + req.params.id as string, + req.body + ); + + res.json(vehicleConfig); + } + + async delete ( + req:Request, + res:Response + ){ + const vehicleConfig = await vehicleConfigService.delete( + req.params.id as string + ); + + res.json({ + messaje:"Configuración de vehículo eliminada" + }); + } +} \ No newline at end of file diff --git a/backend/src/modules/vehicles-config/vehiclesConfig.interface.ts b/backend/src/modules/vehicles-config/vehiclesConfig.interface.ts new file mode 100644 index 0000000..2fe1428 --- /dev/null +++ b/backend/src/modules/vehicles-config/vehiclesConfig.interface.ts @@ -0,0 +1,11 @@ +import { ObjectId } from "mongoose"; + +export interface IVehicleConfig { + + vehicleId:number; + fuelTypeId:ObjectId; + tankCapacity:number; + currentMileage:number; + odometerWorking:boolean; + active:boolean; +} \ No newline at end of file diff --git a/backend/src/modules/vehicles-config/vehiclesConfig.model.ts b/backend/src/modules/vehicles-config/vehiclesConfig.model.ts new file mode 100644 index 0000000..2690e50 --- /dev/null +++ b/backend/src/modules/vehicles-config/vehiclesConfig.model.ts @@ -0,0 +1,41 @@ +import mongoose from "mongoose"; + +const vehicleConfigSchema = new mongoose.Schema ({ + + vehicleid:{ + type:Number, + required:true, + unique:true + }, + + fuelTypeId:{ + type:mongoose.Schema.Types.ObjectId, + ref:"FuelType", + required:true, + }, + + tankcapacity:{ + type:Number, + required:true + }, + + currentMileage:{ + type:Number + }, + + odometerWorking:{ + type:Boolean, + default:true + }, + + active:{ + type:Boolean, + default:true + } +}, +{ + timestamps:true +} +); + +export default mongoose.model("VehicleConfig", vehicleConfigSchema); \ No newline at end of file diff --git a/backend/src/modules/vehicles-config/vehiclesConfig.service.ts b/backend/src/modules/vehicles-config/vehiclesConfig.service.ts new file mode 100644 index 0000000..60163dd --- /dev/null +++ b/backend/src/modules/vehicles-config/vehiclesConfig.service.ts @@ -0,0 +1,48 @@ +import vehiclesConfigModel from "./vehiclesConfig.model"; + +export class VehicleConfigService { + + async getAll() + { + return await vehiclesConfigModel + .find() + .populate("fuelTypeId"); + } + + async getById( + id:string + ) + { + return await vehiclesConfigModel + .findById(id) + .populate("fuelTypeId"); + } + + async create( + data:any + ){ + return await vehiclesConfigModel.create( + data); + } + + async update( + id:string, + data:any + ){ + return await vehiclesConfigModel.findByIdAndUpdate( + id, + data, + { + new:true + } + ); + } + + async delete( + id:string + ){ + return await vehiclesConfigModel.findByIdAndDelete( + id + ); + } +} \ No newline at end of file diff --git a/backend/src/modules/vehicles-config/vehiclesConfigs.routes.ts b/backend/src/modules/vehicles-config/vehiclesConfigs.routes.ts new file mode 100644 index 0000000..b0cea0a --- /dev/null +++ b/backend/src/modules/vehicles-config/vehiclesConfigs.routes.ts @@ -0,0 +1,19 @@ +import { Router } from "express"; +import { VehicleConfigController } from "./vehiclesConfig.controller"; +import { authMiddleware } from "../auth/auth.middleware"; + +const vehicleConfigRouter = Router(); + +const controller = new VehicleConfigController(); + +vehicleConfigRouter.get("/", authMiddleware, controller.getAll); + +vehicleConfigRouter.get("/id", authMiddleware, controller.getById); + +vehicleConfigRouter.post("/", authMiddleware, controller.create); + +vehicleConfigRouter.put("/id", authMiddleware, controller.update); + +vehicleConfigRouter.delete("/id", authMiddleware.apply, controller.delete); + +export default vehicleConfigRouter; \ No newline at end of file