cloud-ide-model-schema
Version:
Pachage for schema management of Cloud IDEsys LMS
113 lines (112 loc) • 3.25 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.CFleetTripLog = void 0;
var mongoose_1 = require("mongoose");
/* SCHEMA START */
var fleet_trip_log = new mongoose_1.Schema({
flttl_vehicle_id_fltvh: {
type: mongoose_1.default.Schema.Types.ObjectId,
ref: "fleet_vehicle_master",
required: true
},
flttl_driver_id_fltdr: {
type: mongoose_1.default.Schema.Types.ObjectId,
ref: "fleet_driver_master",
required: true
},
flttl_route_id_fltrm: {
type: mongoose_1.default.Schema.Types.ObjectId,
ref: "fleet_route_master"
},
flttl_trip_date: {
type: Date,
required: true,
default: Date.now
},
flttl_start_datetime: {
type: Date
},
flttl_end_datetime: {
type: Date
},
flttl_start_odometer_km: {
type: Number,
min: 0
},
flttl_end_odometer_km: {
type: Number,
min: 0
},
flttl_distance_km: {
type: Number,
default: 0,
min: 0
},
flttl_trip_type_sygms: {
type: mongoose_1.default.Schema.Types.ObjectId,
ref: "core_general_master"
},
flttl_purpose: {
type: String,
trim: true
},
flttl_passenger_count: {
type: Number,
default: 0,
min: 0
},
flttl_fuel_consumed_liters: {
type: Number,
default: 0,
min: 0
},
flttl_comments: {
type: String,
trim: true
},
flttl_trip_status_sygms: {
type: mongoose_1.default.Schema.Types.ObjectId,
ref: "core_general_master",
required: true
},
flttl_entity_id_syen: {
type: mongoose_1.default.Schema.Types.ObjectId,
ref: "core_system_entity",
required: true
},
flttl_academic_year_id_acayr: {
type: mongoose_1.default.Schema.Types.ObjectId,
ref: "aca_academic_year"
},
flttl_isactive: {
type: Boolean,
default: true
},
flttl_created_at: {
type: Date,
default: Date.now
},
flttl_updated_at: {
type: Date,
default: Date.now
},
flttl_created_by_user: {
type: mongoose_1.default.Schema.Types.ObjectId,
ref: "auth_user_mst"
}
}, { collection: 'fleet_trip_log', timestamps: { createdAt: 'flttl_created_at', updatedAt: 'flttl_updated_at' } });
// Indexes for performance optimization
// Compound index for entity and date-based queries (most common)
fleet_trip_log.index({ flttl_entity_id_syen: 1, flttl_start_datetime: -1, flttl_isactive: 1 });
// Index for vehicle trip history
fleet_trip_log.index({ flttl_vehicle_id_fltvh: 1 });
// Index for driver trip history
fleet_trip_log.index({ flttl_driver_id_fltdr: 1 });
// Index for status tracking
fleet_trip_log.index({ flttl_trip_status_sygms: 1 });
// Index for route-based reporting
fleet_trip_log.index({ flttl_route_id_fltrm: 1 }, { sparse: true });
// Index for academic year filtering (school-specific)
fleet_trip_log.index({ flttl_academic_year_id_acayr: 1 }, { sparse: true });
var CFleetTripLog = mongoose_1.default.model("fleet_trip_log", fleet_trip_log);
exports.CFleetTripLog = CFleetTripLog;