payservedb 6.5.7 → 6.5.9

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.
Files changed (141) hide show
  1. package/.env +2 -2
  2. package/index.js +277 -277
  3. package/package.json +17 -17
  4. package/src/models/account.js +35 -35
  5. package/src/models/apilog.js +18 -18
  6. package/src/models/approvalsWorkflows.js +49 -49
  7. package/src/models/archivedapilog.js +18 -18
  8. package/src/models/archivedauditlog.js +83 -83
  9. package/src/models/asset.js +92 -92
  10. package/src/models/assetsAssignment.js +64 -64
  11. package/src/models/auditTrail.js +319 -319
  12. package/src/models/auditlog.js +83 -83
  13. package/src/models/bankdetails.js +40 -40
  14. package/src/models/billerAddress.js +119 -119
  15. package/src/models/booking_invoice.js +151 -151
  16. package/src/models/bookinganalytics.js +63 -63
  17. package/src/models/bookingconfig.js +45 -45
  18. package/src/models/bookingproperty.js +122 -122
  19. package/src/models/bookingreservation.js +192 -192
  20. package/src/models/bookingrevenuerecord.js +84 -84
  21. package/src/models/budget.js +95 -95
  22. package/src/models/budgetCategory.js +19 -19
  23. package/src/models/campaigns.js +94 -94
  24. package/src/models/cashpayment.js +264 -264
  25. package/src/models/combinedUnits.js +62 -62
  26. package/src/models/common_area_electricity.js +38 -38
  27. package/src/models/common_area_generator.js +41 -41
  28. package/src/models/common_area_utility_alert.js +37 -37
  29. package/src/models/common_area_water.js +39 -39
  30. package/src/models/communication_status.js +33 -33
  31. package/src/models/company.js +53 -53
  32. package/src/models/country_tax.js +42 -42
  33. package/src/models/currency_settings.js +39 -39
  34. package/src/models/customer.js +208 -208
  35. package/src/models/dailyChecklist.js +97 -0
  36. package/src/models/default_payment_details.js +17 -17
  37. package/src/models/deliveryTimeMarks.js +18 -18
  38. package/src/models/dutyRosterChecklist.js +250 -250
  39. package/src/models/dutyroster.js +136 -136
  40. package/src/models/email.js +37 -37
  41. package/src/models/email_sms_queue.js +61 -61
  42. package/src/models/entry_exit.js +53 -53
  43. package/src/models/expense.js +99 -99
  44. package/src/models/expense_category.js +45 -45
  45. package/src/models/facility.js +61 -61
  46. package/src/models/facilityWalletTransactionsMetadata.js +236 -236
  47. package/src/models/facility_departements.js +20 -20
  48. package/src/models/facility_payment_details.js +20 -20
  49. package/src/models/facilityasset.js +25 -25
  50. package/src/models/faq.js +18 -18
  51. package/src/models/gl_account_double_entries.js +25 -25
  52. package/src/models/gl_accounts.js +56 -56
  53. package/src/models/gl_entries.js +49 -49
  54. package/src/models/goodsReceivedNotes.js +115 -115
  55. package/src/models/guard.js +47 -47
  56. package/src/models/handover.js +246 -246
  57. package/src/models/invoice.js +336 -336
  58. package/src/models/item_inspection.js +67 -67
  59. package/src/models/leaseagreement.js +226 -226
  60. package/src/models/leasetemplate.js +17 -17
  61. package/src/models/levy.js +206 -206
  62. package/src/models/levy_invoice_settings.js +26 -26
  63. package/src/models/levycontract.js +117 -117
  64. package/src/models/levytype.js +23 -23
  65. package/src/models/maintenance_service_vendor.js +38 -38
  66. package/src/models/maintenance_services.js +17 -17
  67. package/src/models/maintenancerequisition.js +31 -31
  68. package/src/models/master_workplan.js +32 -32
  69. package/src/models/master_workplan_child.js +34 -34
  70. package/src/models/message.js +38 -38
  71. package/src/models/module.js +21 -21
  72. package/src/models/notification.js +44 -44
  73. package/src/models/paymentTermsMarks.js +19 -19
  74. package/src/models/penalty.js +76 -76
  75. package/src/models/pendingCredentials.js +32 -32
  76. package/src/models/powerMeterCustomerAccount.js +78 -78
  77. package/src/models/powerMeterCustomerBand.js +14 -14
  78. package/src/models/powerMeterDailyReading.js +30 -30
  79. package/src/models/powerMeterMonthlyReading.js +34 -34
  80. package/src/models/powerMeterPowerCharges.js +53 -53
  81. package/src/models/powerMeterSettings.js +138 -138
  82. package/src/models/powerMeterSingleDayReading.js +32 -32
  83. package/src/models/powerMeters.js +65 -65
  84. package/src/models/powerMetersManufacturer.js +14 -14
  85. package/src/models/propertyManagerContract.js +556 -556
  86. package/src/models/propertyManagerRevenue.js +195 -195
  87. package/src/models/purchaseOrderInvoice.js +74 -74
  88. package/src/models/purchase_order.js +213 -213
  89. package/src/models/purchase_request.js +110 -110
  90. package/src/models/refresh_token.js +23 -23
  91. package/src/models/reminder.js +197 -197
  92. package/src/models/report.js +13 -13
  93. package/src/models/resident.js +121 -121
  94. package/src/models/rfq_details.js +131 -131
  95. package/src/models/rfq_response.js +153 -153
  96. package/src/models/service_charge_invoice_upload.js +42 -42
  97. package/src/models/service_charge_payments.js +27 -27
  98. package/src/models/servicerequest.js +55 -55
  99. package/src/models/settings.js +62 -62
  100. package/src/models/smart_meter_daily_consumption.js +44 -44
  101. package/src/models/sms_africastalking.js +20 -20
  102. package/src/models/sms_balance_notification.js +26 -26
  103. package/src/models/sms_meliora.js +20 -20
  104. package/src/models/staff.js +36 -36
  105. package/src/models/stocksandspare.js +161 -161
  106. package/src/models/suppliers.js +74 -74
  107. package/src/models/tickets.js +121 -121
  108. package/src/models/unitManagementTemplate.js +44 -44
  109. package/src/models/unitasset.js +25 -25
  110. package/src/models/units.js +117 -117
  111. package/src/models/user.js +186 -186
  112. package/src/models/valueaddedservices.js +79 -79
  113. package/src/models/vas_invoices_upload.js +50 -50
  114. package/src/models/vas_payments.js +24 -24
  115. package/src/models/vasinvoice.js +192 -192
  116. package/src/models/vasvendor.js +57 -57
  117. package/src/models/visitLog.js +86 -86
  118. package/src/models/visitor.js +67 -67
  119. package/src/models/waitlist.js +45 -45
  120. package/src/models/wallet.js +44 -44
  121. package/src/models/wallet_transactions.js +50 -50
  122. package/src/models/water_invoice.js +305 -305
  123. package/src/models/water_meter_Command_Queue.js +33 -33
  124. package/src/models/water_meter_account.js +78 -78
  125. package/src/models/water_meter_billing.js +58 -58
  126. package/src/models/water_meter_communication.js +17 -17
  127. package/src/models/water_meter_communication_logs.js +30 -30
  128. package/src/models/water_meter_concentrator.js +66 -66
  129. package/src/models/water_meter_daily_history.js +32 -32
  130. package/src/models/water_meter_iot_cards.js +34 -34
  131. package/src/models/water_meter_manufacturer.js +35 -35
  132. package/src/models/water_meter_monthly_history.js +36 -36
  133. package/src/models/water_meter_negative_amounts.js +38 -38
  134. package/src/models/water_meter_settings.js +180 -180
  135. package/src/models/water_meter_single_day_history.js +34 -34
  136. package/src/models/water_meter_size.js +15 -15
  137. package/src/models/water_meters.js +134 -134
  138. package/src/models/water_meters_delivery.js +76 -76
  139. package/src/models/water_prepaid_credit.js +47 -47
  140. package/src/models/water_prepaid_debit.js +50 -50
  141. package/src/models/workorder.js +49 -49
@@ -1,265 +1,265 @@
1
- const mongoose = require('mongoose');
2
-
3
- const cashPaymentSchema = new mongoose.Schema(
4
- {
5
- paymentReference: {
6
- type: String,
7
- required: true,
8
- unique: true,
9
- trim: true
10
- },
11
- receiptNumber: {
12
- type: String,
13
- required: true,
14
- unique: true,
15
- trim: true
16
- },
17
- invoice: {
18
- invoiceId: {
19
- type: mongoose.Schema.Types.ObjectId,
20
- ref: "Invoice",
21
- required: true
22
- },
23
- invoiceNumber: {
24
- type: String,
25
- required: true,
26
- trim: true
27
- },
28
- accountNumber: {
29
- type: String,
30
- trim: true
31
- }
32
- },
33
- client: {
34
- clientId: {
35
- type: mongoose.Schema.Types.ObjectId,
36
- ref: "Customer",
37
- required: true
38
- },
39
- firstName: {
40
- type: String,
41
- required: true,
42
- trim: true
43
- },
44
- lastName: {
45
- type: String,
46
- required: true,
47
- trim: true
48
- }
49
- },
50
- facility: {
51
- id: {
52
- type: mongoose.Schema.Types.ObjectId,
53
- ref: "Facility",
54
- required: true
55
- },
56
- name: {
57
- type: String,
58
- required: true,
59
- trim: true
60
- }
61
- },
62
- currency: {
63
- id: {
64
- type: mongoose.Schema.Types.ObjectId,
65
- ref: "Currency",
66
- required: true
67
- },
68
- name: {
69
- type: String,
70
- required: true,
71
- trim: true
72
- },
73
- code: {
74
- type: String,
75
- required: true,
76
- uppercase: true,
77
- minlength: 3,
78
- maxlength: 3
79
- }
80
- },
81
- paymentAmount: {
82
- type: Number,
83
- required: true,
84
- min: 0
85
- },
86
- paymentDate: {
87
- type: Date,
88
- required: true,
89
- default: Date.now
90
- },
91
- paymentMethod: {
92
- type: String,
93
- enum: ['cash', 'bank-transfer', 'cheque'],
94
- default: 'cash'
95
- },
96
- exchangeRate: {
97
- rate: {
98
- type: Number,
99
- default: 1
100
- },
101
- sourceCurrency: {
102
- type: String,
103
- uppercase: true,
104
- minlength: 3,
105
- maxlength: 3
106
- },
107
- targetCurrency: {
108
- type: String,
109
- uppercase: true,
110
- minlength: 3,
111
- maxlength: 3
112
- },
113
- conversionDate: Date
114
- },
115
- approvalStatus: {
116
- type: String,
117
- enum: ['Pending', 'Approved', 'Rejected'],
118
- default: 'Pending'
119
- },
120
- approvedBy: {
121
- userId: mongoose.Schema.Types.ObjectId,
122
- name: String,
123
- approvalDate: Date,
124
- comments: String
125
- },
126
- rejectedBy: {
127
- userId: mongoose.Schema.Types.ObjectId,
128
- name: String,
129
- rejectionDate: Date,
130
- reason: String
131
- },
132
- isVoided: {
133
- type: Boolean,
134
- default: false
135
- },
136
- voidedBy: {
137
- userId: mongoose.Schema.Types.ObjectId,
138
- name: String,
139
- voidDate: Date,
140
- reason: String
141
- },
142
- reconciliationStatus: {
143
- type: String,
144
- enum: ['Pending', 'Matched', 'Partial', 'Overpaid', 'Error'],
145
- default: 'Pending'
146
- },
147
- reconciliationDetails: {
148
- appliedAmount: Number,
149
- overpayAmount: {
150
- type: Number,
151
- default: 0
152
- },
153
- reconciliationDate: Date,
154
- reconciledBy: mongoose.Schema.Types.ObjectId,
155
- paymentMethod: String, // To store the payment method used during reconciliation
156
- notes: String
157
- },
158
- paymentNotes: String,
159
- attachments: [
160
- {
161
- fileId: mongoose.Schema.Types.ObjectId,
162
- fileName: String,
163
- fileType: String,
164
- filePath: String,
165
- uploadDate: Date,
166
- uploadedBy: mongoose.Schema.Types.ObjectId,
167
- size: Number,
168
- originalName: String
169
- }
170
- ],
171
- metadata: {
172
- createdBy: {
173
- type: mongoose.Schema.Types.ObjectId,
174
- required: true
175
- },
176
- source: {
177
- type: String,
178
- enum: ['manual', 'api', 'import', 'mobile'],
179
- default: 'manual'
180
- },
181
- deviceInfo: {
182
- deviceId: String,
183
- deviceType: String,
184
- ipAddress: String
185
- }
186
- }
187
- },
188
- {
189
- timestamps: true
190
- }
191
- );
192
-
193
- // Add indexes for frequently queried fields
194
- cashPaymentSchema.index({ 'paymentReference': 1 });
195
- cashPaymentSchema.index({ 'receiptNumber': 1 });
196
- cashPaymentSchema.index({ 'approvalStatus': 1 });
197
- cashPaymentSchema.index({ 'isVoided': 1 });
198
- cashPaymentSchema.index({ 'client.clientId': 1 });
199
- cashPaymentSchema.index({ 'invoice.invoiceId': 1 });
200
- cashPaymentSchema.index({ 'facility.id': 1 });
201
- cashPaymentSchema.index({ 'reconciliationStatus': 1 });
202
- cashPaymentSchema.index({ 'paymentDate': -1 });
203
- cashPaymentSchema.index({ 'currency.code': 1 });
204
- cashPaymentSchema.index({ 'paymentMethod': 1 });
205
- cashPaymentSchema.index({ 'paymentDate': -1, 'approvalStatus': 1 });
206
- cashPaymentSchema.index({ 'client.clientId': 1, 'approvalStatus': 1 });
207
-
208
- // // Add virtual properties
209
- // cashPaymentSchema.virtual('clientFullName').get(function () {
210
- // return ${ this.client.firstName } ${ this.client.lastName };
211
- // });
212
- // Add instance methods
213
- cashPaymentSchema.methods.convertCurrency = function (targetCurrencyCode, exchangeRate) {
214
- if (this.currency.code === targetCurrencyCode) {
215
- return this.paymentAmount;
216
- }
217
- return this.paymentAmount * exchangeRate;
218
- };
219
-
220
- // Static methods
221
- cashPaymentSchema.statics.findByClientId = function (clientId) {
222
- return this.find({ 'client.clientId': clientId }).sort({ paymentDate: -1 });
223
- };
224
-
225
- cashPaymentSchema.statics.findByInvoiceId = function (invoiceId) {
226
- return this.find({ 'invoice.invoiceId': invoiceId }).sort({ paymentDate: -1 });
227
- };
228
-
229
- cashPaymentSchema.statics.findPendingPayments = function (facilityId) {
230
- return this.find({
231
- 'facility.id': facilityId,
232
- 'approvalStatus': 'Pending',
233
- 'isVoided': false
234
- }).sort({ paymentDate: -1 });
235
- };
236
-
237
- cashPaymentSchema.statics.findOverpaidPayments = function (facilityId) {
238
- return this.find({
239
- 'facility.id': facilityId,
240
- 'approvalStatus': 'Approved',
241
- 'reconciliationStatus': 'Overpaid',
242
- 'isVoided': false
243
- }).sort({ paymentDate: -1 });
244
- };
245
-
246
- // Pre-save middleware
247
- cashPaymentSchema.pre('save', function (next) {
248
- // If the payment is approved, ensure the reconciliation status is set
249
- if (this.isModified('approvalStatus') && this.approvalStatus === 'Approved' && this.reconciliationStatus === 'Pending') {
250
- this.reconciliationStatus = 'Matched'; // Default status when approved
251
- }
252
-
253
- // If the payment is voided, clear certain fields
254
- if (this.isModified('isVoided') && this.isVoided) {
255
- this.approvalStatus = 'Pending';
256
- this.reconciliationStatus = 'Pending';
257
- }
258
-
259
- next();
260
- });
261
-
262
- // Create model (only if not already defined by getModel utility)
263
- const CashPayment = mongoose.models.CashPayment || mongoose.model('CashPayment', cashPaymentSchema);
264
-
1
+ const mongoose = require('mongoose');
2
+
3
+ const cashPaymentSchema = new mongoose.Schema(
4
+ {
5
+ paymentReference: {
6
+ type: String,
7
+ required: true,
8
+ unique: true,
9
+ trim: true
10
+ },
11
+ receiptNumber: {
12
+ type: String,
13
+ required: true,
14
+ unique: true,
15
+ trim: true
16
+ },
17
+ invoice: {
18
+ invoiceId: {
19
+ type: mongoose.Schema.Types.ObjectId,
20
+ ref: "Invoice",
21
+ required: true
22
+ },
23
+ invoiceNumber: {
24
+ type: String,
25
+ required: true,
26
+ trim: true
27
+ },
28
+ accountNumber: {
29
+ type: String,
30
+ trim: true
31
+ }
32
+ },
33
+ client: {
34
+ clientId: {
35
+ type: mongoose.Schema.Types.ObjectId,
36
+ ref: "Customer",
37
+ required: true
38
+ },
39
+ firstName: {
40
+ type: String,
41
+ required: true,
42
+ trim: true
43
+ },
44
+ lastName: {
45
+ type: String,
46
+ required: true,
47
+ trim: true
48
+ }
49
+ },
50
+ facility: {
51
+ id: {
52
+ type: mongoose.Schema.Types.ObjectId,
53
+ ref: "Facility",
54
+ required: true
55
+ },
56
+ name: {
57
+ type: String,
58
+ required: true,
59
+ trim: true
60
+ }
61
+ },
62
+ currency: {
63
+ id: {
64
+ type: mongoose.Schema.Types.ObjectId,
65
+ ref: "Currency",
66
+ required: true
67
+ },
68
+ name: {
69
+ type: String,
70
+ required: true,
71
+ trim: true
72
+ },
73
+ code: {
74
+ type: String,
75
+ required: true,
76
+ uppercase: true,
77
+ minlength: 3,
78
+ maxlength: 3
79
+ }
80
+ },
81
+ paymentAmount: {
82
+ type: Number,
83
+ required: true,
84
+ min: 0
85
+ },
86
+ paymentDate: {
87
+ type: Date,
88
+ required: true,
89
+ default: Date.now
90
+ },
91
+ paymentMethod: {
92
+ type: String,
93
+ enum: ['cash', 'bank-transfer', 'cheque'],
94
+ default: 'cash'
95
+ },
96
+ exchangeRate: {
97
+ rate: {
98
+ type: Number,
99
+ default: 1
100
+ },
101
+ sourceCurrency: {
102
+ type: String,
103
+ uppercase: true,
104
+ minlength: 3,
105
+ maxlength: 3
106
+ },
107
+ targetCurrency: {
108
+ type: String,
109
+ uppercase: true,
110
+ minlength: 3,
111
+ maxlength: 3
112
+ },
113
+ conversionDate: Date
114
+ },
115
+ approvalStatus: {
116
+ type: String,
117
+ enum: ['Pending', 'Approved', 'Rejected'],
118
+ default: 'Pending'
119
+ },
120
+ approvedBy: {
121
+ userId: mongoose.Schema.Types.ObjectId,
122
+ name: String,
123
+ approvalDate: Date,
124
+ comments: String
125
+ },
126
+ rejectedBy: {
127
+ userId: mongoose.Schema.Types.ObjectId,
128
+ name: String,
129
+ rejectionDate: Date,
130
+ reason: String
131
+ },
132
+ isVoided: {
133
+ type: Boolean,
134
+ default: false
135
+ },
136
+ voidedBy: {
137
+ userId: mongoose.Schema.Types.ObjectId,
138
+ name: String,
139
+ voidDate: Date,
140
+ reason: String
141
+ },
142
+ reconciliationStatus: {
143
+ type: String,
144
+ enum: ['Pending', 'Matched', 'Partial', 'Overpaid', 'Error'],
145
+ default: 'Pending'
146
+ },
147
+ reconciliationDetails: {
148
+ appliedAmount: Number,
149
+ overpayAmount: {
150
+ type: Number,
151
+ default: 0
152
+ },
153
+ reconciliationDate: Date,
154
+ reconciledBy: mongoose.Schema.Types.ObjectId,
155
+ paymentMethod: String, // To store the payment method used during reconciliation
156
+ notes: String
157
+ },
158
+ paymentNotes: String,
159
+ attachments: [
160
+ {
161
+ fileId: mongoose.Schema.Types.ObjectId,
162
+ fileName: String,
163
+ fileType: String,
164
+ filePath: String,
165
+ uploadDate: Date,
166
+ uploadedBy: mongoose.Schema.Types.ObjectId,
167
+ size: Number,
168
+ originalName: String
169
+ }
170
+ ],
171
+ metadata: {
172
+ createdBy: {
173
+ type: mongoose.Schema.Types.ObjectId,
174
+ required: true
175
+ },
176
+ source: {
177
+ type: String,
178
+ enum: ['manual', 'api', 'import', 'mobile'],
179
+ default: 'manual'
180
+ },
181
+ deviceInfo: {
182
+ deviceId: String,
183
+ deviceType: String,
184
+ ipAddress: String
185
+ }
186
+ }
187
+ },
188
+ {
189
+ timestamps: true
190
+ }
191
+ );
192
+
193
+ // Add indexes for frequently queried fields
194
+ cashPaymentSchema.index({ 'paymentReference': 1 });
195
+ cashPaymentSchema.index({ 'receiptNumber': 1 });
196
+ cashPaymentSchema.index({ 'approvalStatus': 1 });
197
+ cashPaymentSchema.index({ 'isVoided': 1 });
198
+ cashPaymentSchema.index({ 'client.clientId': 1 });
199
+ cashPaymentSchema.index({ 'invoice.invoiceId': 1 });
200
+ cashPaymentSchema.index({ 'facility.id': 1 });
201
+ cashPaymentSchema.index({ 'reconciliationStatus': 1 });
202
+ cashPaymentSchema.index({ 'paymentDate': -1 });
203
+ cashPaymentSchema.index({ 'currency.code': 1 });
204
+ cashPaymentSchema.index({ 'paymentMethod': 1 });
205
+ cashPaymentSchema.index({ 'paymentDate': -1, 'approvalStatus': 1 });
206
+ cashPaymentSchema.index({ 'client.clientId': 1, 'approvalStatus': 1 });
207
+
208
+ // // Add virtual properties
209
+ // cashPaymentSchema.virtual('clientFullName').get(function () {
210
+ // return ${ this.client.firstName } ${ this.client.lastName };
211
+ // });
212
+ // Add instance methods
213
+ cashPaymentSchema.methods.convertCurrency = function (targetCurrencyCode, exchangeRate) {
214
+ if (this.currency.code === targetCurrencyCode) {
215
+ return this.paymentAmount;
216
+ }
217
+ return this.paymentAmount * exchangeRate;
218
+ };
219
+
220
+ // Static methods
221
+ cashPaymentSchema.statics.findByClientId = function (clientId) {
222
+ return this.find({ 'client.clientId': clientId }).sort({ paymentDate: -1 });
223
+ };
224
+
225
+ cashPaymentSchema.statics.findByInvoiceId = function (invoiceId) {
226
+ return this.find({ 'invoice.invoiceId': invoiceId }).sort({ paymentDate: -1 });
227
+ };
228
+
229
+ cashPaymentSchema.statics.findPendingPayments = function (facilityId) {
230
+ return this.find({
231
+ 'facility.id': facilityId,
232
+ 'approvalStatus': 'Pending',
233
+ 'isVoided': false
234
+ }).sort({ paymentDate: -1 });
235
+ };
236
+
237
+ cashPaymentSchema.statics.findOverpaidPayments = function (facilityId) {
238
+ return this.find({
239
+ 'facility.id': facilityId,
240
+ 'approvalStatus': 'Approved',
241
+ 'reconciliationStatus': 'Overpaid',
242
+ 'isVoided': false
243
+ }).sort({ paymentDate: -1 });
244
+ };
245
+
246
+ // Pre-save middleware
247
+ cashPaymentSchema.pre('save', function (next) {
248
+ // If the payment is approved, ensure the reconciliation status is set
249
+ if (this.isModified('approvalStatus') && this.approvalStatus === 'Approved' && this.reconciliationStatus === 'Pending') {
250
+ this.reconciliationStatus = 'Matched'; // Default status when approved
251
+ }
252
+
253
+ // If the payment is voided, clear certain fields
254
+ if (this.isModified('isVoided') && this.isVoided) {
255
+ this.approvalStatus = 'Pending';
256
+ this.reconciliationStatus = 'Pending';
257
+ }
258
+
259
+ next();
260
+ });
261
+
262
+ // Create model (only if not already defined by getModel utility)
263
+ const CashPayment = mongoose.models.CashPayment || mongoose.model('CashPayment', cashPaymentSchema);
264
+
265
265
  module.exports = CashPayment;
@@ -1,62 +1,62 @@
1
- const mongoose = require('mongoose');
2
-
3
- // Define the schema for companies
4
- const combinedUnitSchema = new mongoose.Schema({
5
- combinedUnitName: {
6
- type: String,
7
- required: true
8
- },
9
- combinedDivision:{
10
- type:String,
11
- required:true
12
- },
13
- combinedUnitType:{
14
- type:String,
15
- required:true
16
- },
17
- combinedFloorUnit:{
18
- type:String,
19
- required:true
20
- },
21
- combinedLettableFloorArea:{
22
- type:String,
23
- required:false
24
- },
25
- combinedLRNumber:{
26
- type:String,
27
- required:true
28
- },
29
- combinedGrossArea:{
30
- type:Number,
31
- required:false
32
- },
33
- combinedNetLettableArea:{
34
- type:Number,
35
- required:false
36
- },
37
- combinedReason:{
38
- type:String,
39
- required:false
40
- },
41
- status:{
42
- type:String,
43
- required:true
44
- },
45
- selectedCombinedUnits:[],
46
- facilityId:{
47
- type: mongoose.Schema.Types.ObjectId,
48
- ref: 'Facility',
49
- }
50
-
51
-
52
- }, {
53
- timestamps: true // Automatically add createdAt and updatedAt fields
54
- });
55
-
56
- // Indexes for improved performance
57
- combinedUnitSchema.index({ name: 1 });
58
-
59
- // Compile the model from the schema
60
- const CombinedUnit = mongoose.model('CombinedUnit', combinedUnitSchema);
61
-
62
- module.exports = CombinedUnit;
1
+ const mongoose = require('mongoose');
2
+
3
+ // Define the schema for companies
4
+ const combinedUnitSchema = new mongoose.Schema({
5
+ combinedUnitName: {
6
+ type: String,
7
+ required: true
8
+ },
9
+ combinedDivision:{
10
+ type:String,
11
+ required:true
12
+ },
13
+ combinedUnitType:{
14
+ type:String,
15
+ required:true
16
+ },
17
+ combinedFloorUnit:{
18
+ type:String,
19
+ required:true
20
+ },
21
+ combinedLettableFloorArea:{
22
+ type:String,
23
+ required:false
24
+ },
25
+ combinedLRNumber:{
26
+ type:String,
27
+ required:true
28
+ },
29
+ combinedGrossArea:{
30
+ type:Number,
31
+ required:false
32
+ },
33
+ combinedNetLettableArea:{
34
+ type:Number,
35
+ required:false
36
+ },
37
+ combinedReason:{
38
+ type:String,
39
+ required:false
40
+ },
41
+ status:{
42
+ type:String,
43
+ required:true
44
+ },
45
+ selectedCombinedUnits:[],
46
+ facilityId:{
47
+ type: mongoose.Schema.Types.ObjectId,
48
+ ref: 'Facility',
49
+ }
50
+
51
+
52
+ }, {
53
+ timestamps: true // Automatically add createdAt and updatedAt fields
54
+ });
55
+
56
+ // Indexes for improved performance
57
+ combinedUnitSchema.index({ name: 1 });
58
+
59
+ // Compile the model from the schema
60
+ const CombinedUnit = mongoose.model('CombinedUnit', combinedUnitSchema);
61
+
62
+ module.exports = CombinedUnit;