UNPKG

cloud-ide-model-schema

Version:

Pachage for schema management of Cloud IDEsys LMS

106 lines (105 loc) 3.19 kB
"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;