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

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

View File

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

View File

@ -16,12 +16,10 @@ const fuelPriceSchema = new mongoose.Schema({
effetiveFrom:{
type:Date,
required:true
},
effetiveTo:{
type:Date,
required:true
},
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;