cloud-ide-model-schema 1.1.118 → 1.1.120

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -196,6 +196,16 @@ var admission_application_main = new mongoose_1.Schema({
196
196
  ref: "aca_class_program_master",
197
197
  comment: "Class/Program applying for - Reference to aca_class_program_master"
198
198
  },
199
+ admap_class_program_branch_id_acabrn: {
200
+ type: mongoose_1.default.Schema.Types.ObjectId,
201
+ ref: "aca_class_prg_branch",
202
+ comment: "Class/Program branch - Reference to aca_class_prg_branch (conditional - shown if program has branchType: true)"
203
+ },
204
+ admap_class_program_term_id_acapt: {
205
+ type: mongoose_1.default.Schema.Types.ObjectId,
206
+ ref: "aca_class_program_term",
207
+ comment: "Class/Program term/semester - Reference to aca_class_program_term (conditional - shown if program has termType: true and getAdmission: true)"
208
+ },
199
209
  admap_grade_level_applying_for_id_acacpm: {
200
210
  type: mongoose_1.default.Schema.Types.ObjectId,
201
211
  ref: "aca_class_program_master",
@@ -971,6 +981,10 @@ var admission_application_main = new mongoose_1.Schema({
971
981
  type: Date,
972
982
  comment: "Date when application was submitted"
973
983
  },
984
+ admap_submission_date: {
985
+ type: Date,
986
+ comment: "Date when application was submitted (alternative field name)"
987
+ },
974
988
  admap_interview_scheduled_date: {
975
989
  type: Date,
976
990
  comment: "Scheduled interview date"
@@ -1067,6 +1081,8 @@ admission_application_main.index({ admap_application_status_id_sygms: 1 });
1067
1081
  admission_application_main.index({ admap_status_id_sygms: 1 });
1068
1082
  admission_application_main.index({ admap_program_category_id_sygms: 1 });
1069
1083
  admission_application_main.index({ admap_class_program_id_acacpm: 1 });
1084
+ admission_application_main.index({ admap_class_program_branch_id_acabrn: 1 });
1085
+ admission_application_main.index({ admap_class_program_term_id_acapt: 1 });
1070
1086
  admission_application_main.index({ admap_created_date: -1 });
1071
1087
  var CAdmissionApplicationMain = mongoose_1.default.model("admission_application_main", admission_application_main);
1072
1088
  exports.CAdmissionApplicationMain = CAdmissionApplicationMain;
@@ -0,0 +1,23 @@
1
+ import mongoose from "mongoose";
2
+ declare const CFeeAssignment: mongoose.Model<{
3
+ [x: string]: unknown;
4
+ }, {}, {}, {}, mongoose.Document<unknown, {}, {
5
+ [x: string]: unknown;
6
+ }, {}> & {
7
+ [x: string]: unknown;
8
+ } & Required<{
9
+ _id: unknown;
10
+ }> & {
11
+ __v: number;
12
+ }, mongoose.Schema<any, mongoose.Model<any, any, any, any, any, any>, {}, {}, {}, {}, mongoose.DefaultSchemaOptions, {
13
+ [x: string]: unknown;
14
+ }, mongoose.Document<unknown, {}, mongoose.FlatRecord<{
15
+ [x: string]: unknown;
16
+ }>, {}> & mongoose.FlatRecord<{
17
+ [x: string]: unknown;
18
+ }> & Required<{
19
+ _id: unknown;
20
+ }> & {
21
+ __v: number;
22
+ }>>;
23
+ export { CFeeAssignment };
@@ -0,0 +1,254 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CFeeAssignment = void 0;
4
+ var mongoose_1 = require("mongoose");
5
+ /**
6
+ * Fee Assignment Schema
7
+ *
8
+ * Purpose: Fees assigned to individual students
9
+ * Used by: Fees, Student Management modules
10
+ *
11
+ * Note: Currently uses student_id as string since student schema doesn't exist yet
12
+ * This can be updated to ObjectId reference when student schema is created
13
+ */
14
+ /* SCHEMA START */
15
+ var fee_assignment = new mongoose_1.Schema({
16
+ feeas_assignment_number: {
17
+ type: String,
18
+ required: true,
19
+ unique: true,
20
+ maxlength: 50,
21
+ trim: true,
22
+ comment: "Unique fee assignment number (auto-generated)"
23
+ },
24
+ feeas_student_id: {
25
+ type: String,
26
+ required: true,
27
+ comment: "Student ID (from admission form admap_student_id) - will be ObjectId when student schema exists"
28
+ },
29
+ feeas_fee_structure_id_feest: {
30
+ type: mongoose_1.default.Schema.Types.ObjectId,
31
+ ref: "fee_structures",
32
+ default: null,
33
+ comment: "Fee structure (if assigned from structure)"
34
+ },
35
+ feeas_fee_structure_item_id_feesi: {
36
+ type: mongoose_1.default.Schema.Types.ObjectId,
37
+ ref: "fee_structure_items",
38
+ default: null,
39
+ comment: "Specific fee structure item (if assigned from structure)"
40
+ },
41
+ feeas_fee_category_sygms: {
42
+ type: mongoose_1.default.Schema.Types.ObjectId,
43
+ ref: "core_general_master",
44
+ required: true,
45
+ comment: "Fee category (Tuition, Library, Lab, etc.)"
46
+ },
47
+ feeas_fee_name: {
48
+ type: String,
49
+ required: true,
50
+ minlength: 1,
51
+ maxlength: 200,
52
+ trim: true,
53
+ comment: "Fee name"
54
+ },
55
+ feeas_fee_description: {
56
+ type: String,
57
+ maxlength: 500,
58
+ trim: true,
59
+ comment: "Fee description"
60
+ },
61
+ feeas_fee_type: {
62
+ type: String,
63
+ required: true,
64
+ enum: ['ONE_TIME', 'RECURRING'],
65
+ default: 'ONE_TIME',
66
+ comment: "Fee type"
67
+ },
68
+ feeas_payment_frequency: {
69
+ type: String,
70
+ required: true,
71
+ enum: ['MONTHLY', 'QUARTERLY', 'SEMESTER', 'ANNUAL', 'ONE_TIME'],
72
+ default: 'ONE_TIME',
73
+ comment: "Payment frequency"
74
+ },
75
+ feeas_original_amount: {
76
+ type: Number,
77
+ required: true,
78
+ min: 0,
79
+ comment: "Original fee amount (before discounts)"
80
+ },
81
+ feeas_discount_amount: {
82
+ type: Number,
83
+ required: true,
84
+ default: 0,
85
+ min: 0,
86
+ comment: "Discount amount applied"
87
+ },
88
+ feeas_scholarship_amount: {
89
+ type: Number,
90
+ required: true,
91
+ default: 0,
92
+ min: 0,
93
+ comment: "Scholarship amount applied"
94
+ },
95
+ feeas_waiver_amount: {
96
+ type: Number,
97
+ required: true,
98
+ default: 0,
99
+ min: 0,
100
+ comment: "Waiver amount applied"
101
+ },
102
+ feeas_tax_amount: {
103
+ type: Number,
104
+ required: true,
105
+ default: 0,
106
+ min: 0,
107
+ comment: "Tax amount"
108
+ },
109
+ feeas_total_amount: {
110
+ type: Number,
111
+ required: true,
112
+ min: 0,
113
+ comment: "Total amount after discounts/scholarships/waivers (including tax)"
114
+ },
115
+ feeas_assigned_amount: {
116
+ type: Number,
117
+ required: true,
118
+ min: 0,
119
+ comment: "Amount assigned (may differ from total if partial assignment)"
120
+ },
121
+ feeas_paid_amount: {
122
+ type: Number,
123
+ required: true,
124
+ default: 0,
125
+ min: 0,
126
+ comment: "Total amount paid so far"
127
+ },
128
+ feeas_outstanding_amount: {
129
+ type: Number,
130
+ required: true,
131
+ min: 0,
132
+ comment: "Outstanding amount (assigned_amount - paid_amount)"
133
+ },
134
+ feeas_assignment_date: {
135
+ type: Date,
136
+ required: true,
137
+ default: Date.now,
138
+ comment: "Date when fee was assigned"
139
+ },
140
+ feeas_due_date: {
141
+ type: Date,
142
+ required: true,
143
+ comment: "Due date for payment"
144
+ },
145
+ feeas_collection_start_date: {
146
+ type: Date,
147
+ required: true,
148
+ comment: "Collection window start date"
149
+ },
150
+ feeas_collection_end_date: {
151
+ type: Date,
152
+ required: true,
153
+ comment: "Collection window end date"
154
+ },
155
+ feeas_installment_count: {
156
+ type: Number,
157
+ required: true,
158
+ default: 1,
159
+ min: 1,
160
+ max: 12,
161
+ comment: "Number of installments"
162
+ },
163
+ feeas_installment_amount: {
164
+ type: Number,
165
+ required: true,
166
+ min: 0,
167
+ comment: "Amount per installment"
168
+ },
169
+ feeas_paid_installments: {
170
+ type: Number,
171
+ required: true,
172
+ default: 0,
173
+ min: 0,
174
+ comment: "Number of installments paid"
175
+ },
176
+ feeas_payment_status: {
177
+ type: String,
178
+ required: true,
179
+ enum: ['PENDING', 'PARTIALLY_PAID', 'PAID', 'OVERDUE', 'WAIVED', 'CANCELLED'],
180
+ default: 'PENDING',
181
+ comment: "Payment status"
182
+ },
183
+ feeas_late_fee_applied: {
184
+ type: Boolean,
185
+ default: false,
186
+ comment: "Has late fee been applied"
187
+ },
188
+ feeas_late_fee_amount: {
189
+ type: Number,
190
+ required: true,
191
+ default: 0,
192
+ min: 0,
193
+ comment: "Late fee amount applied"
194
+ },
195
+ feeas_academic_year_id_acayr: {
196
+ type: mongoose_1.default.Schema.Types.ObjectId,
197
+ ref: "aca_academic_year",
198
+ required: true,
199
+ comment: "Academic year"
200
+ },
201
+ feeas_class_program_id_acacpm: {
202
+ type: mongoose_1.default.Schema.Types.ObjectId,
203
+ ref: "aca_class_program_master",
204
+ default: null,
205
+ comment: "Class/Program (from admission form)"
206
+ },
207
+ feeas_entity_id_syen: {
208
+ type: mongoose_1.default.Schema.Types.ObjectId,
209
+ ref: "core_system_entity",
210
+ required: true,
211
+ comment: "Entity/Organization"
212
+ },
213
+ feeas_admission_id_admap: {
214
+ type: mongoose_1.default.Schema.Types.ObjectId,
215
+ ref: "admission_application_main",
216
+ default: null,
217
+ comment: "Reference to admission form (for tracking)"
218
+ },
219
+ feeas_notes: {
220
+ type: String,
221
+ maxlength: 1000,
222
+ trim: true,
223
+ comment: "Additional notes"
224
+ },
225
+ feeas_created_by_user: {
226
+ type: mongoose_1.default.Schema.Types.ObjectId,
227
+ ref: "auth_user_mst",
228
+ required: true,
229
+ comment: "User who assigned the fee"
230
+ },
231
+ feeas_isactive: {
232
+ type: Boolean,
233
+ default: true,
234
+ comment: "Active status flag"
235
+ }
236
+ }, {
237
+ collection: 'fee_assignments',
238
+ timestamps: true // Adds created_at and updated_at
239
+ });
240
+ // Indexes for performance
241
+ fee_assignment.index({ feeas_assignment_number: 1 }, { unique: true });
242
+ fee_assignment.index({ feeas_student_id: 1, feeas_due_date: 1 });
243
+ fee_assignment.index({ feeas_fee_structure_id_feest: 1 });
244
+ fee_assignment.index({ feeas_payment_status: 1, feeas_due_date: 1 });
245
+ fee_assignment.index({ feeas_entity_id_syen: 1, feeas_academic_year_id_acayr: 1 });
246
+ fee_assignment.index({ feeas_due_date: 1 });
247
+ fee_assignment.index({ feeas_student_id: 1, feeas_payment_status: 1 });
248
+ fee_assignment.index({ feeas_entity_id_syen: 1, feeas_payment_status: 1 });
249
+ fee_assignment.index({ feeas_admission_id_admap: 1 });
250
+ /* SCHEMA END */
251
+ // Note: Interface will be defined in cloud-ide-lms-model
252
+ // For now, export the schema model
253
+ var CFeeAssignment = mongoose_1.default.model("fee_assignments", fee_assignment);
254
+ exports.CFeeAssignment = CFeeAssignment;
@@ -0,0 +1 @@
1
+ export * from './fee_assignment';
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./fee_assignment"), exports);
@@ -5,5 +5,6 @@ export * from "./academics";
5
5
  export * from "./accounts";
6
6
  export * from "./frontdesk";
7
7
  export * from "./admission";
8
+ export * from "./fees";
8
9
  export * from "./notifications";
9
10
  export * from "./system";
@@ -21,5 +21,6 @@ __exportStar(require("./academics"), exports);
21
21
  __exportStar(require("./accounts"), exports);
22
22
  __exportStar(require("./frontdesk"), exports);
23
23
  __exportStar(require("./admission"), exports);
24
+ __exportStar(require("./fees"), exports);
24
25
  __exportStar(require("./notifications"), exports);
25
26
  __exportStar(require("./system"), exports);
@@ -3,29 +3,15 @@ export interface IBackupJob {
3
3
  _id?: string;
4
4
  bjob_name: string;
5
5
  bjob_backup_type: 'full' | 'incremental' | 'differential' | 'file';
6
- bjob_schedule: {
7
- frequency: 'daily' | 'weekly' | 'monthly' | 'hourly' | 'manual';
8
- time?: string;
9
- day_of_week?: number;
10
- day_of_month?: number;
11
- };
12
6
  bjob_status: 'active' | 'paused' | 'disabled';
13
- bjob_last_run?: Date;
14
- bjob_next_run?: Date;
15
- bjob_retention_days: number;
16
- bjob_encryption_enabled: boolean;
17
- bjob_compression_enabled: boolean;
18
- bjob_storage_location: 'local' | 'cloud' | 'both';
19
- bjob_cloud_provider?: 'aws' | 'azure' | 'gcp';
20
- bjob_cloud_config?: {
21
- bucket_name?: string;
22
- region?: string;
23
- access_key?: string;
24
- };
25
- bjob_include_collections?: string[];
26
- bjob_exclude_collections?: string[];
27
- bjob_include_files?: boolean;
28
- bjob_file_paths?: string[];
7
+ bjob_backup_policy_id?: string;
8
+ bjob_description?: string;
9
+ bjob_schedule_cron?: string;
10
+ bjob_last_run_at?: Date;
11
+ bjob_next_run_at?: Date;
12
+ bjob_total_runs?: number;
13
+ bjob_successful_runs?: number;
14
+ bjob_failed_runs?: number;
29
15
  bjob_created_by?: string;
30
16
  bjob_created_at?: Date;
31
17
  bjob_updated_at?: Date;
@@ -14,28 +14,7 @@ var backup_jobs = new mongoose_1.Schema({
14
14
  type: String,
15
15
  required: true,
16
16
  enum: ['full', 'incremental', 'differential', 'file'],
17
- trim: true
18
- },
19
- bjob_schedule: {
20
- frequency: {
21
- type: String,
22
- required: true,
23
- enum: ['daily', 'weekly', 'monthly', 'hourly', 'manual']
24
- },
25
- time: {
26
- type: String,
27
- maxlength: 5
28
- },
29
- day_of_week: {
30
- type: Number,
31
- min: 0,
32
- max: 6
33
- },
34
- day_of_month: {
35
- type: Number,
36
- min: 1,
37
- max: 31
38
- }
17
+ default: 'full'
39
18
  },
40
19
  bjob_status: {
41
20
  type: String,
@@ -43,55 +22,52 @@ var backup_jobs = new mongoose_1.Schema({
43
22
  enum: ['active', 'paused', 'disabled'],
44
23
  default: 'active'
45
24
  },
46
- bjob_last_run: {
47
- type: Date
48
- },
49
- bjob_next_run: {
50
- type: Date
51
- },
52
- bjob_retention_days: {
53
- type: Number,
54
- required: true,
55
- default: 30,
56
- min: 1
57
- },
58
- bjob_encryption_enabled: {
59
- type: Boolean,
60
- default: false
61
- },
62
- bjob_compression_enabled: {
63
- type: Boolean,
64
- default: true
25
+ bjob_backup_policy_id: {
26
+ type: mongoose_1.default.Schema.Types.ObjectId,
27
+ ref: "backup_policies",
28
+ comment: "Reference to backup policy"
65
29
  },
66
- bjob_storage_location: {
30
+ bjob_description: {
67
31
  type: String,
68
- required: true,
69
- enum: ['local', 'cloud', 'both'],
70
- default: 'local'
32
+ maxlength: 500,
33
+ trim: true
71
34
  },
72
- bjob_cloud_provider: {
35
+ bjob_schedule_cron: {
73
36
  type: String,
74
- enum: ['aws', 'azure', 'gcp']
37
+ maxlength: 100,
38
+ trim: true,
39
+ comment: "Cron expression for backup schedule"
75
40
  },
76
- bjob_cloud_config: {
77
- type: Object
41
+ bjob_last_run_at: {
42
+ type: Date,
43
+ comment: "Last backup execution time"
78
44
  },
79
- bjob_include_collections: {
80
- type: [String]
45
+ bjob_next_run_at: {
46
+ type: Date,
47
+ comment: "Next scheduled backup execution time"
81
48
  },
82
- bjob_exclude_collections: {
83
- type: [String]
49
+ bjob_total_runs: {
50
+ type: Number,
51
+ default: 0,
52
+ min: 0,
53
+ comment: "Total number of backup runs"
84
54
  },
85
- bjob_include_files: {
86
- type: Boolean,
87
- default: false
55
+ bjob_successful_runs: {
56
+ type: Number,
57
+ default: 0,
58
+ min: 0,
59
+ comment: "Number of successful backup runs"
88
60
  },
89
- bjob_file_paths: {
90
- type: [String]
61
+ bjob_failed_runs: {
62
+ type: Number,
63
+ default: 0,
64
+ min: 0,
65
+ comment: "Number of failed backup runs"
91
66
  },
92
67
  bjob_created_by: {
93
68
  type: mongoose_1.default.Schema.Types.ObjectId,
94
- ref: "auth_user_mst"
69
+ ref: "auth_user_mst",
70
+ comment: "User who created the backup job"
95
71
  },
96
72
  bjob_created_at: {
97
73
  type: Date,
@@ -109,6 +85,8 @@ var backup_jobs = new mongoose_1.Schema({
109
85
  // Indexes
110
86
  backup_jobs.index({ bjob_name: 1 });
111
87
  backup_jobs.index({ bjob_status: 1 });
112
- backup_jobs.index({ bjob_next_run: 1 });
88
+ backup_jobs.index({ bjob_backup_type: 1 });
89
+ backup_jobs.index({ bjob_backup_policy_id: 1 });
90
+ backup_jobs.index({ bjob_isactive: 1 });
113
91
  var CBackupJob = mongoose_1.default.model("backup_jobs", backup_jobs);
114
92
  exports.CBackupJob = CBackupJob;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "dependencies": {
3
- "cloud-ide-lms-model": "^1.0.334",
3
+ "cloud-ide-lms-model": "^1.0.340",
4
4
  "dotenv": "^16.5.0",
5
5
  "mongoose": "^8.15.0"
6
6
  },
@@ -9,7 +9,7 @@
9
9
  "typescript": "^5.8.3"
10
10
  },
11
11
  "name": "cloud-ide-model-schema",
12
- "version": "1.1.118",
12
+ "version": "1.1.120",
13
13
  "description": "Pachage for schema management of Cloud IDEsys LMS",
14
14
  "main": "lib/index.js",
15
15
  "types": "lib/index.d.ts",