cloud-ide-model-schema
Version:
Pachage for schema management of Cloud IDEsys LMS
82 lines (81 loc) • 2.76 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.CFleetStudentTransport = void 0;
var mongoose_1 = require("mongoose");
/* SCHEMA START */
var fleet_student_transport = new mongoose_1.Schema({
fltst_student_id_auth: {
type: mongoose_1.default.Schema.Types.ObjectId,
ref: "auth_user_mst",
required: true
},
fltst_route_id_fltrm: {
type: mongoose_1.default.Schema.Types.ObjectId,
ref: "fleet_route_master",
required: true
},
fltst_pickup_stop_id_fltrs: {
type: mongoose_1.default.Schema.Types.ObjectId,
ref: "fleet_route_stops",
required: true
},
fltst_drop_stop_id_fltrs: {
type: mongoose_1.default.Schema.Types.ObjectId,
ref: "fleet_route_stops",
required: true
},
fltst_valid_from: {
type: Date,
required: true
},
fltst_valid_to: {
type: Date
},
fltst_transport_type_sygms: {
type: mongoose_1.default.Schema.Types.ObjectId,
ref: "core_general_master"
},
fltst_guardian_phone: {
type: String,
trim: true
},
fltst_entity_id_syen: {
type: mongoose_1.default.Schema.Types.ObjectId,
ref: "core_system_entity",
required: true
},
fltst_academic_year_id_acayr: {
type: mongoose_1.default.Schema.Types.ObjectId,
ref: "aca_academic_year"
// optional: for academic use; when null, allocation works for any industry
},
fltst_isactive: {
type: Boolean,
default: true
},
fltst_created_at: {
type: Date,
default: Date.now
},
fltst_updated_at: {
type: Date,
default: Date.now
},
fltst_created_by_user: {
type: mongoose_1.default.Schema.Types.ObjectId,
ref: "auth_user_mst"
}
}, { collection: 'fleet_student_transport', timestamps: { createdAt: 'fltst_created_at', updatedAt: 'fltst_updated_at' } });
// Indexes for performance optimization
// Compound index for entity and academic year queries (most common)
fleet_student_transport.index({ fltst_entity_id_syen: 1, fltst_academic_year_id_acayr: 1, fltst_isactive: 1 });
// Index for student lookup
fleet_student_transport.index({ fltst_student_id_auth: 1 });
// Index for route-based queries
fleet_student_transport.index({ fltst_route_id_fltrm: 1 });
// Index for pickup stop lookup
fleet_student_transport.index({ fltst_pickup_stop_id_fltrs: 1 });
// Index for drop stop lookup
fleet_student_transport.index({ fltst_drop_stop_id_fltrs: 1 });
var CFleetStudentTransport = mongoose_1.default.model("fleet_student_transport", fleet_student_transport);
exports.CFleetStudentTransport = CFleetStudentTransport;