Implementación modulo configuración adicional de vehiculos

This commit is contained in:
2026-06-05 15:22:14 +00:00
parent c48f2f8537
commit a82e8af316
9 changed files with 187 additions and 5 deletions

View File

@ -7,6 +7,7 @@ import authRouter from "./modules/auth/auth.routes";
import fuelRoutes from "./modules/fuel-types/fuelType.routes"; import fuelRoutes from "./modules/fuel-types/fuelType.routes";
import fuelPriceRoute from "./modules/fuel_prices/fuelPrices.routes"; import fuelPriceRoute from "./modules/fuel_prices/fuelPrices.routes";
import fuelPumpRouter from "./modules/fuel_pumps/fuelPump.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/auth", authRouter);
app.use("/api/fuelprice", fuelPriceRoute); app.use("/api/fuelprice", fuelPriceRoute);
app.use("/api/pump", fuelPumpRouter); app.use("/api/pump", fuelPumpRouter);
app.use("/api/vconfig", vehicleConfigRouter);
app.use(express.urlencoded({ app.use(express.urlencoded({

View File

@ -1,7 +1,6 @@
import bcrypt from "bcrypt"; import bcrypt from "bcrypt";
import jwt from "jsonwebtoken"; import jwt from "jsonwebtoken";
import userModel from "../user/user.model"; import userModel from "../user/user.model";
import { resolve } from "dns/promises";
export class AuthService { export class AuthService {

View File

@ -1,8 +1,8 @@
import mongoose, { mongo, ObjectId } from "mongoose"; import mongoose, { mongo, ObjectId } from "mongoose";
export interface IFuelPrince { export interface IFuelPrice {
fueltypeId:ObjectId; fuelTypeId:ObjectId;
pricePerGallon:number; pricePerGallon:number;
effectiveFrom:Date; effectiveFrom:Date;

View File

@ -16,12 +16,10 @@ const fuelPriceSchema = new mongoose.Schema({
effetiveFrom:{ effetiveFrom:{
type:Date, type:Date,
required:true
}, },
effetiveTo:{ effetiveTo:{
type:Date, type:Date,
required:true
}, },
active:{ active:{

View File

@ -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"
});
}
}

View File

@ -0,0 +1,11 @@
import { ObjectId } from "mongoose";
export interface IVehicleConfig {
vehicleId:number;
fuelTypeId:ObjectId;
tankCapacity:number;
currentMileage:number;
odometerWorking:boolean;
active:boolean;
}

View File

@ -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);

View File

@ -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
);
}
}

View File

@ -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;