UNPKG

cloud-ide-model-schema

Version:

Pachage for schema management of Cloud IDEsys LMS

77 lines (76 loc) 2.2 kB
"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;