Implementación CRUD asignación de vehiculos

This commit is contained in:
2026-06-05 17:15:11 +00:00
parent a82e8af316
commit 1366f2c5f6
6 changed files with 193 additions and 0 deletions

View File

@ -8,6 +8,7 @@ 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";
import vAssigRouter from "./modules/vehicle-assignments/vehicleassig.routes";
@ -23,6 +24,7 @@ app.use("/api/auth", authRouter);
app.use("/api/fuelprice", fuelPriceRoute);
app.use("/api/pump", fuelPumpRouter);
app.use("/api/vconfig", vehicleConfigRouter);
app.use("/api/vAssig", vAssigRouter);
app.use(express.urlencoded({

View File

@ -0,0 +1,66 @@
import {Request, Response } from "express";
import { VehicleAssigService } from "./vehicleassig.service";
const vehicleAssigService = new VehicleAssigService();
export class VehicleAssigController {
async getAll(
req:Request,
res:Response
){
const vAssigs = await vehicleAssigService.getAll();
res.json(vAssigs);
}
async getById(
req:Request,
res:Response
){
const vAssig = await vehicleAssigService.getById(
req.params.id as string
);
res.json(vAssig);
}
async create(
req:Request,
res:Response
){
const vAssig = await vehicleAssigService.create(
req.body
);
res.status(201).json(vAssig);
}
async update(
req:Request,
res:Response
){
const vAssig = await vehicleAssigService.update(
req.params.id as string,
req.body
);
res.json(vAssig);
}
async delete (
req:Request,
res:Response
){
const vAssig = await vehicleAssigService.delete(
req.params.id as string
)
res.json({
message:"Assignación eliminada"
});
}
}

View File

@ -0,0 +1,11 @@
import { ObjectId } from "mongoose";
export interface IVehicleAssig {
vehicleNumber:number;
exployeeId:number;
assigmentDate:Date;
unassigmentDate:Date;
active:boolean
createdBy:ObjectId;
}

View File

@ -0,0 +1,41 @@
import mongoose, { mongo } from "mongoose";
const vehicleAssigSchema = new mongoose.Schema({
vehicleNumber:{
type:Number,
required:true
},
exployeeId:{
type:Number,
required:true
},
assigmentDate:{
type:Date,
required:true
},
unassigmentDate:{
type:Date
},
active:{
type:Boolean,
default:true
},
createdBy:{
type:mongoose.Schema.Types.ObjectId,
ref:"User",
required:true
}
},
{
timestamps:true
}
);
export default mongoose.model("VehicleAssig", vehicleAssigSchema)

View File

@ -0,0 +1,18 @@
import { Router } from "express";
import { VehicleAssigController } from "./vehicleassig.controller";
import { authMiddleware } from "../auth/auth.middleware";
const vAssigRouter = Router();
const controller = new VehicleAssigController();
vAssigRouter.get("/", authMiddleware, controller.getAll)
vAssigRouter.get("/id", authMiddleware, controller.getById);
vAssigRouter.post("/", authMiddleware, controller.create);
vAssigRouter.put("/id", authMiddleware, controller.update);
vAssigRouter.delete("/id", authMiddleware, controller.delete);
export default vAssigRouter;

View File

@ -0,0 +1,55 @@
import vehicleassigModel from "./vehicleassig.model";
export class VehicleAssigService {
async getAll()
{
return await vehicleassigModel
.find()
.populate(
"createdBy",
"userName"
);
}
async getById(
id:string
){
return await vehicleassigModel
.findById(id)
.populate(
"createdBy",
"userName"
);
}
async create(
data:any
){
return await vehicleassigModel.create(
data
);
}
async update(
id:string,
data:any
){
return await vehicleassigModel.findByIdAndUpdate(
id,
data,
{
new:true
}
);
}
async delete(
id:string
){
return await vehicleassigModel.findByIdAndDelete(
id
);
}
}