worldshine-redesign/app/models/vehicle.model.js
2026-01-29 21:01:01 -05:00

63 lines
1.8 KiB
JavaScript

const uniqueValidator = require('mongoose-unique-validator');
module.exports = mongoose => {
var schema = mongoose.Schema(
{
// Basic Information
vehicle_number: {
type: Number,
required: true,
},
responsible_driver: String,
responsible_driver_id: String,
capacity: Number,
mileage: Number,
make: String,
vehicle_model: String,
year: String,
vin: String,
tag: {
type: String,
required: true
},
gps_tag: String,
ezpass: String,
has_lift_equip: Boolean,
fuel_type: String,
title: String,
title_other: String,
// Compliance & Deadlines
insurance_start_date: String,
vehicle_registration_date: String,
// Legacy fields (keeping for backward compatibility)
insurance_expire_on: String,
title_registration_on: String,
emission_test_on: String,
oil_change_mileage: Number,
oil_change_date: String,
// Check List
checklist: [{
type: String
}],
// Additional Information
note: String,
// System fields
status: String,
site: Number
},
{ collection: 'vehicle', timestamps: true }
);
schema.method("toJSON", function() {
const { __v, _id, ...object } = this.toObject();
object.id = _id;
return object;
});
schema.index({tag: 1, site:1}, {unique: true});
const Vehicle = mongoose.model("vehicle", schema);
return Vehicle;
};