UNPKG

cloud-ide-model-schema

Version:

Pachage for schema management of Cloud IDEsys LMS

113 lines (112 loc) 3.25 kB
"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;