cloud-ide-model-schema
Version:
Pachage for schema management of Cloud IDEsys LMS
126 lines (125 loc) • 4.38 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.CAcademicsBonafideRequest = void 0;
var mongoose_1 = require("mongoose");
/* SCHEMA START */
var academics_bonafide_request = new mongoose_1.Schema({
abnr_request_number: {
type: String,
required: true,
maxlength: 50,
trim: true,
comment: "Auto-generated request number (e.g., BNF-2025-001234)"
},
// abnr_student_id removed as per refactor
abnr_student_id_auth: {
type: mongoose_1.default.Schema.Types.ObjectId,
ref: "auth_user_mst",
required: true,
comment: "Student user ID"
},
abnr_purpose: {
type: String,
required: true,
maxlength: 500,
trim: true,
comment: "Purpose of bonafide certificate"
},
abnr_certificate_purpose: {
type: String,
maxlength: 500,
trim: true,
comment: "Edited purpose for certificate (overrides default purpose)"
},
abnr_request_date: {
type: Date,
required: true,
default: Date.now,
comment: "Request submission date"
},
abnr_status_id_sygms: {
type: mongoose_1.default.Schema.Types.ObjectId,
ref: "core_general_master",
required: true,
comment: "Request status (from bonafide_status type)"
},
abnr_current_step: {
type: Number,
default: 1,
comment: "Current workflow step"
},
abnr_workflow_id_wfrg: {
type: mongoose_1.default.Schema.Types.ObjectId,
ref: "core_workflow_registry",
required: true,
comment: "Workflow reference"
},
abnr_requested_by_user: {
type: mongoose_1.default.Schema.Types.ObjectId,
ref: "auth_user_mst",
required: true,
comment: "User who created the request"
},
abnr_soft_copy_id_cyfm: {
type: mongoose_1.default.Schema.Types.ObjectId,
ref: "core_file_manager",
comment: "Generated soft copy PDF"
},
abnr_stamped_copy_id_cyfm: {
type: mongoose_1.default.Schema.Types.ObjectId,
ref: "core_file_manager",
comment: "Stamped hard copy scan"
},
abnr_completed_date: {
type: Date,
comment: "Date when request was completed"
},
abnr_academic_year_id_acayr: {
type: mongoose_1.default.Schema.Types.ObjectId,
ref: "aca_academic_year",
required: true,
comment: "Academic year reference"
},
abnr_class_program_id_acacpm: {
type: mongoose_1.default.Schema.Types.ObjectId,
ref: "aca_class_program_master",
required: true,
comment: "Class program reference"
},
abnr_term_id_acatrm: {
type: mongoose_1.default.Schema.Types.ObjectId,
ref: "aca_class_program_term",
required: true,
comment: "Term reference"
},
abnr_section_id_acapts: {
type: mongoose_1.default.Schema.Types.ObjectId,
ref: "aca_prg_trm_section",
required: true,
comment: "Section reference"
},
abnr_entity_id_syen: {
type: mongoose_1.default.Schema.Types.ObjectId,
ref: "core_system_entity",
required: true,
comment: "Entity reference"
},
abnr_isactive: {
type: Boolean,
default: true,
comment: "Active status"
}
}, { collection: 'academics_bonafide_request' });
// Indexes for performance optimization
academics_bonafide_request.index({ abnr_request_number: 1 });
academics_bonafide_request.index({ abnr_student_id_auth: 1, abnr_isactive: 1 });
academics_bonafide_request.index({ abnr_status_id_sygms: 1, abnr_isactive: 1 });
academics_bonafide_request.index({ abnr_workflow_id_wfrg: 1, abnr_current_step: 1 });
academics_bonafide_request.index({ abnr_entity_id_syen: 1, abnr_isactive: 1 });
academics_bonafide_request.index({ abnr_academic_year_id_acayr: 1 });
academics_bonafide_request.index({ abnr_class_program_id_acacpm: 1 });
academics_bonafide_request.index({ abnr_term_id_acatrm: 1 });
academics_bonafide_request.index({ abnr_section_id_acapts: 1 });
academics_bonafide_request.index({ abnr_request_date: -1 });
var CAcademicsBonafideRequest = mongoose_1.default.model("academics_bonafide_request", academics_bonafide_request);
exports.CAcademicsBonafideRequest = CAcademicsBonafideRequest;