UNPKG

cloud-ide-model-schema

Version:

Pachage for schema management of Cloud IDEsys LMS

129 lines (128 loc) 3.69 kB
"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;