cloud-ide-model-schema
Version:
Pachage for schema management of Cloud IDEsys LMS
106 lines (105 loc) • 3.19 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.CFleetIncidentReport = void 0;
var mongoose_1 = require("mongoose");
/* SCHEMA START */
var fleet_incident_report = new mongoose_1.Schema({
fltir_vehicle_id_fltvh: {
type: mongoose_1.default.Schema.Types.ObjectId,
ref: "fleet_vehicle_master",
required: true
},
fltir_driver_id_fltdr: {
type: mongoose_1.default.Schema.Types.ObjectId,
ref: "fleet_driver_master",
required: true
},
fltir_incident_date: {
type: Date,
required: true
},
fltir_incident_time: {
type: String,
trim: true,
match: /^([0-1]?[0-9]|2[0-3]):[0-5][0-9]$/ // HH:MM format
},
fltir_incident_type_sygms: {
type: mongoose_1.default.Schema.Types.ObjectId,
ref: "core_general_master",
required: true
},
fltir_severity_sygms: {
type: mongoose_1.default.Schema.Types.ObjectId,
ref: "core_general_master"
},
fltir_location: {
type: String,
trim: true
},
fltir_description: {
type: String,
required: true,
trim: true
},
fltir_police_report_number: {
type: String,
trim: true
},
fltir_insurance_claim_number: {
type: String,
trim: true
},
fltir_estimated_damage_cost: {
type: Number,
min: 0
},
fltir_injuries_reported: {
type: Boolean,
default: false
},
fltir_injury_details: {
type: String,
trim: true
},
fltir_status_sygms: {
type: mongoose_1.default.Schema.Types.ObjectId,
ref: "core_general_master",
required: true
},
fltir_entity_id_syen: {
type: mongoose_1.default.Schema.Types.ObjectId,
ref: "core_system_entity",
required: true
},
fltir_reported_by_user: {
type: mongoose_1.default.Schema.Types.ObjectId,
ref: "auth_user_mst"
},
fltir_isactive: {
type: Boolean,
default: true
},
fltir_created_at: {
type: Date,
default: Date.now
},
fltir_updated_at: {
type: Date,
default: Date.now
}
}, { collection: 'fleet_incident_report', timestamps: { createdAt: 'fltir_created_at', updatedAt: 'fltir_updated_at' } });
// Indexes for performance optimization
// Compound index for entity and date-based queries
fleet_incident_report.index({ fltir_entity_id_syen: 1, fltir_incident_date: -1 });
// Index for vehicle incident history
fleet_incident_report.index({ fltir_vehicle_id_fltvh: 1 });
// Index for driver incident tracking
fleet_incident_report.index({ fltir_driver_id_fltdr: 1 });
// Index for status filtering
fleet_incident_report.index({ fltir_status_sygms: 1 });
// Index for incident type reporting
fleet_incident_report.index({ fltir_incident_type_sygms: 1 });
// Index for severity tracking
fleet_incident_report.index({ fltir_severity_sygms: 1 }, { sparse: true });
var CFleetIncidentReport = mongoose_1.default.model("fleet_incident_report", fleet_incident_report);
exports.CFleetIncidentReport = CFleetIncidentReport;