cloud-ide-model-schema
Version:
Pachage for schema management of Cloud IDEsys LMS
77 lines (76 loc) • 2.2 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.CFleetRouteStops = void 0;
var mongoose_1 = require("mongoose");
/* SCHEMA START */
var fleet_route_stops = new mongoose_1.Schema({
fltrs_route_id_fltrm: {
type: mongoose_1.default.Schema.Types.ObjectId,
ref: "fleet_route_master",
required: true
},
fltrs_stop_name: {
type: String,
required: true,
trim: true
},
fltrs_stop_address: {
type: String,
trim: true
},
fltrs_stop_latitude: {
type: Number,
min: -90,
max: 90
},
fltrs_stop_longitude: {
type: Number,
min: -180,
max: 180
},
fltrs_stop_order: {
type: Number,
required: true,
min: 1
},
fltrs_estimated_arrival_time: {
type: String,
trim: true,
match: /^([0-1]?[0-9]|2[0-3]):[0-5][0-9]$/ // HH:MM format
},
fltrs_stop_type_sygms: {
type: mongoose_1.default.Schema.Types.ObjectId,
ref: "core_general_master"
},
fltrs_entity_id_syen: {
type: mongoose_1.default.Schema.Types.ObjectId,
ref: "core_system_entity",
required: true
},
fltrs_isactive: {
type: Boolean,
default: true
},
fltrs_created_at: {
type: Date,
default: Date.now
},
fltrs_updated_at: {
type: Date,
default: Date.now
}
}, { collection: 'fleet_route_stops', timestamps: { createdAt: 'fltrs_created_at', updatedAt: 'fltrs_updated_at' } });
// Indexes for performance optimization
// Compound index for route-based queries with stop order
fleet_route_stops.index({ fltrs_route_id_fltrm: 1, fltrs_stop_order: 1 });
// Index for entity filtering
fleet_route_stops.index({ fltrs_entity_id_syen: 1 });
// Index for stop type filtering
fleet_route_stops.index({ fltrs_stop_type_sygms: 1 }, { sparse: true });
// Text index for stop search
fleet_route_stops.index({
fltrs_stop_name: 'text',
fltrs_stop_address: 'text'
});
var CFleetRouteStops = mongoose_1.default.model("fleet_route_stops", fleet_route_stops);
exports.CFleetRouteStops = CFleetRouteStops;