cloud-ide-model-schema
Version:
Pachage for schema management of Cloud IDEsys LMS
129 lines (128 loc) • 3.69 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.CFleetVehicleMaster = void 0;
var mongoose_1 = require("mongoose");
/* SCHEMA START */
var fleet_vehicle_master = new mongoose_1.Schema({
fltvh_registration_number: {
type: String,
required: true,
trim: true,
uppercase: true
},
fltvh_vehicle_name: {
type: String,
trim: true
},
fltvh_vehicle_type_sygms: {
type: mongoose_1.default.Schema.Types.ObjectId,
ref: "core_general_master",
required: true
},
fltvh_make: {
type: String,
trim: true
},
fltvh_model: {
type: String,
trim: true
},
fltvh_year: {
type: Number,
min: 1900,
max: 2100
},
fltvh_color: {
type: String,
trim: true
},
fltvh_chassis_number: {
type: String,
trim: true,
uppercase: true
},
fltvh_engine_number: {
type: String,
trim: true,
uppercase: true
},
fltvh_fuel_type_sygms: {
type: mongoose_1.default.Schema.Types.ObjectId,
ref: "core_general_master"
},
fltvh_seating_capacity: {
type: Number,
min: 1
},
fltvh_ownership_type_sygms: {
type: mongoose_1.default.Schema.Types.ObjectId,
ref: "core_general_master"
},
fltvh_purchase_date: {
type: Date
},
fltvh_purchase_cost: {
type: Number,
min: 0
},
fltvh_entity_id_syen: {
type: mongoose_1.default.Schema.Types.ObjectId,
ref: "core_system_entity",
required: true
},
fltvh_status_sygms: {
type: mongoose_1.default.Schema.Types.ObjectId,
ref: "core_general_master",
required: true
},
fltvh_current_odometer_km: {
type: Number,
default: 0,
min: 0
},
fltvh_tracking_device_id: {
type: String,
trim: true
},
fltvh_custom_fields: {
type: mongoose_1.Schema.Types.Mixed
},
fltvh_isactive: {
type: Boolean,
default: true
},
fltvh_created_at: {
type: Date,
default: Date.now
},
fltvh_updated_at: {
type: Date,
default: Date.now
},
fltvh_created_by_user: {
type: mongoose_1.default.Schema.Types.ObjectId,
ref: "auth_user_mst"
}
}, { collection: 'fleet_vehicle_master', timestamps: { createdAt: 'fltvh_created_at', updatedAt: 'fltvh_updated_at' } });
// Indexes for performance optimization
// Compound index for entity-based queries with status filtering (most common query pattern)
fleet_vehicle_master.index({ fltvh_entity_id_syen: 1, fltvh_status_sygms: 1, fltvh_isactive: 1 });
// Unique compound index for registration number per entity
fleet_vehicle_master.index({ fltvh_registration_number: 1, fltvh_entity_id_syen: 1 }, { unique: true });
// Index for chassis number lookup
fleet_vehicle_master.index({ fltvh_chassis_number: 1 }, { sparse: true });
// Index for vehicle type filtering
fleet_vehicle_master.index({ fltvh_vehicle_type_sygms: 1 });
// Index for tracking device lookup
fleet_vehicle_master.index({ fltvh_tracking_device_id: 1 }, { sparse: true });
// Index for active vehicles only
fleet_vehicle_master.index({ fltvh_isactive: 1 });
// Text index for search functionality
fleet_vehicle_master.index({
fltvh_registration_number: 'text',
fltvh_vehicle_name: 'text',
fltvh_make: 'text',
fltvh_model: 'text'
});
var CFleetVehicleMaster = mongoose_1.default.model("fleet_vehicle_master", fleet_vehicle_master);
exports.CFleetVehicleMaster = CFleetVehicleMaster;