payservedb 6.3.1 → 6.3.3

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 (136) hide show
  1. package/.env +2 -2
  2. package/index.js +272 -272
  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 +34 -34
  10. package/src/models/assetsAssignment.js +64 -64
  11. package/src/models/auditlog.js +83 -83
  12. package/src/models/bankdetails.js +40 -40
  13. package/src/models/billerAddress.js +119 -119
  14. package/src/models/booking_invoice.js +151 -151
  15. package/src/models/bookinganalytics.js +63 -63
  16. package/src/models/bookingconfig.js +45 -45
  17. package/src/models/bookingproperty.js +112 -112
  18. package/src/models/bookingreservation.js +192 -192
  19. package/src/models/bookingrevenuerecord.js +84 -84
  20. package/src/models/budget.js +95 -95
  21. package/src/models/budgetCategory.js +19 -19
  22. package/src/models/campaigns.js +72 -72
  23. package/src/models/cashpayment.js +264 -264
  24. package/src/models/combinedUnits.js +62 -62
  25. package/src/models/common_area_electricity.js +38 -38
  26. package/src/models/common_area_generator.js +41 -41
  27. package/src/models/common_area_utility_alert.js +37 -37
  28. package/src/models/common_area_water.js +39 -39
  29. package/src/models/communication_status.js +33 -33
  30. package/src/models/company.js +53 -53
  31. package/src/models/country_tax.js +42 -42
  32. package/src/models/currency_settings.js +39 -39
  33. package/src/models/customer.js +208 -208
  34. package/src/models/default_payment_details.js +17 -17
  35. package/src/models/deliveryTimeMarks.js +18 -18
  36. package/src/models/dutyroster.js +107 -107
  37. package/src/models/email.js +37 -37
  38. package/src/models/email_sms_queue.js +61 -61
  39. package/src/models/entry_exit.js +53 -53
  40. package/src/models/expense.js +99 -99
  41. package/src/models/expense_category.js +45 -45
  42. package/src/models/facility.js +61 -61
  43. package/src/models/facilityWalletTransactionsMetadata.js +236 -239
  44. package/src/models/facility_departements.js +20 -20
  45. package/src/models/facility_payment_details.js +20 -20
  46. package/src/models/facilityasset.js +25 -25
  47. package/src/models/faq.js +18 -18
  48. package/src/models/gl_account_double_entries.js +25 -25
  49. package/src/models/gl_accounts.js +56 -56
  50. package/src/models/gl_entries.js +49 -49
  51. package/src/models/goodsReceivedNotes.js +115 -115
  52. package/src/models/guard.js +47 -47
  53. package/src/models/handover.js +246 -246
  54. package/src/models/invoice.js +336 -336
  55. package/src/models/item_inspection.js +67 -67
  56. package/src/models/leaseagreement.js +221 -221
  57. package/src/models/leasetemplate.js +17 -17
  58. package/src/models/levy.js +206 -206
  59. package/src/models/levy_invoice_settings.js +26 -26
  60. package/src/models/levycontract.js +117 -117
  61. package/src/models/levytype.js +23 -23
  62. package/src/models/maintenance_service_vendor.js +38 -38
  63. package/src/models/maintenance_services.js +17 -17
  64. package/src/models/maintenancerequisition.js +31 -31
  65. package/src/models/message.js +38 -38
  66. package/src/models/module.js +21 -21
  67. package/src/models/notification.js +44 -44
  68. package/src/models/paymentTermsMarks.js +19 -19
  69. package/src/models/penalty.js +76 -76
  70. package/src/models/pendingCredentials.js +32 -32
  71. package/src/models/powerMeterCustomerAccount.js +78 -78
  72. package/src/models/powerMeterCustomerBand.js +14 -14
  73. package/src/models/powerMeterDailyReading.js +30 -30
  74. package/src/models/powerMeterMonthlyReading.js +34 -34
  75. package/src/models/powerMeterPowerCharges.js +53 -53
  76. package/src/models/powerMeterSettings.js +138 -138
  77. package/src/models/powerMeterSingleDayReading.js +32 -32
  78. package/src/models/powerMeters.js +65 -65
  79. package/src/models/powerMetersManufacturer.js +14 -14
  80. package/src/models/propertyManagerContract.js +556 -556
  81. package/src/models/propertyManagerRevenue.js +195 -195
  82. package/src/models/purchaseOrderInvoice.js +74 -74
  83. package/src/models/purchase_order.js +213 -213
  84. package/src/models/purchase_request.js +110 -110
  85. package/src/models/refresh_token.js +23 -23
  86. package/src/models/reminder.js +197 -197
  87. package/src/models/report.js +13 -13
  88. package/src/models/resident.js +121 -121
  89. package/src/models/rfq_details.js +131 -131
  90. package/src/models/rfq_response.js +153 -153
  91. package/src/models/service_charge_invoice_upload.js +42 -42
  92. package/src/models/service_charge_payments.js +27 -27
  93. package/src/models/servicerequest.js +55 -55
  94. package/src/models/settings.js +62 -62
  95. package/src/models/smart_meter_daily_consumption.js +44 -44
  96. package/src/models/sms_africastalking.js +20 -20
  97. package/src/models/sms_balance_notification.js +26 -26
  98. package/src/models/sms_meliora.js +20 -20
  99. package/src/models/staff.js +36 -36
  100. package/src/models/stocksandspare.js +34 -34
  101. package/src/models/suppliers.js +74 -74
  102. package/src/models/tickets.js +121 -121
  103. package/src/models/unitManagementTemplate.js +44 -44
  104. package/src/models/unitasset.js +25 -25
  105. package/src/models/units.js +112 -112
  106. package/src/models/user.js +186 -186
  107. package/src/models/valueaddedservices.js +79 -79
  108. package/src/models/vas_invoices_upload.js +50 -50
  109. package/src/models/vas_payments.js +24 -24
  110. package/src/models/vasinvoice.js +192 -192
  111. package/src/models/vasvendor.js +57 -57
  112. package/src/models/visitLog.js +86 -86
  113. package/src/models/visitor.js +67 -67
  114. package/src/models/waitlist.js +45 -45
  115. package/src/models/wallet.js +44 -44
  116. package/src/models/wallet_transactions.js +50 -50
  117. package/src/models/water_invoice.js +230 -230
  118. package/src/models/water_meter_Command_Queue.js +33 -33
  119. package/src/models/water_meter_account.js +78 -78
  120. package/src/models/water_meter_billing.js +58 -58
  121. package/src/models/water_meter_communication.js +17 -17
  122. package/src/models/water_meter_communication_logs.js +30 -30
  123. package/src/models/water_meter_concentrator.js +66 -66
  124. package/src/models/water_meter_daily_history.js +32 -32
  125. package/src/models/water_meter_iot_cards.js +34 -34
  126. package/src/models/water_meter_manufacturer.js +35 -35
  127. package/src/models/water_meter_monthly_history.js +36 -36
  128. package/src/models/water_meter_negative_amounts.js +38 -38
  129. package/src/models/water_meter_settings.js +150 -150
  130. package/src/models/water_meter_single_day_history.js +34 -34
  131. package/src/models/water_meter_size.js +15 -15
  132. package/src/models/water_meters.js +123 -123
  133. package/src/models/water_meters_delivery.js +76 -76
  134. package/src/models/water_prepaid_credit.js +47 -47
  135. package/src/models/water_prepaid_debit.js +50 -50
  136. package/src/models/workorder.js +49 -49
@@ -1,231 +1,231 @@
1
- const mongoose = require('mongoose');
2
-
3
- const waterInvoiceSchema = new mongoose.Schema(
4
- {
5
- // Basic identifiers
6
- invoiceNumber: {
7
- type: String,
8
- required: true,
9
- unique: true
10
- },
11
- accountNumber: {
12
- type: String,
13
- required: true
14
- },
15
- unitName: {
16
- type: String,
17
- required: true,
18
- },
19
- yearMonth: {
20
- type: String,
21
- required: true,
22
- },
23
- facilityId: {
24
- type: mongoose.Schema.Types.ObjectId,
25
- required: true
26
- },
27
- customerId: {
28
- type: mongoose.Schema.Types.ObjectId,
29
- required: true
30
- },
31
- billingType: {
32
- type: String,
33
- enum: ['postpaid'],
34
- },
35
- balanceBroughtForward: {
36
- type: Number,
37
- default: 0
38
- },
39
-
40
- // Biller Address Information (added from WaterMeterSettings)
41
- billerAddress: {
42
- name: {
43
- type: String,
44
- required: [true, "Biller name is required"],
45
- trim: true,
46
- minlength: [1, "Biller name must be at least 1 character long"],
47
- },
48
- email: {
49
- type: String,
50
- required: [true, "Biller email is required"],
51
- trim: true,
52
- lowercase: true,
53
- validate: {
54
- validator: function (v) {
55
- return /^\w+([\.-]?\w+)@\w+([\.-]?\w+)(\.\w{2,3})+$/.test(v);
56
- },
57
- message: "Please enter a valid email address"
58
- }
59
- },
60
- phone: {
61
- type: String,
62
- required: [true, "Biller phone is required"],
63
- trim: true,
64
- },
65
- address: {
66
- type: String,
67
- required: [true, "Biller address is required"],
68
- trim: true,
69
- },
70
- city: {
71
- type: String,
72
- required: [true, "Biller city is required"],
73
- trim: true,
74
- }
75
- },
76
-
77
- // Dates
78
- dateIssued: {
79
- type: Date,
80
- default: Date.now
81
- },
82
- dueDate: {
83
- type: Date,
84
- required: true
85
- },
86
-
87
- // Meter & Consumption Details
88
- meterNumber: {
89
- type: String,
90
- required: true
91
- },
92
- meterReadings: {
93
- previousReading: {
94
- type: Number,
95
- required: true
96
- },
97
- currentReading: {
98
- type: Number,
99
- required: true
100
- },
101
- usage: {
102
- type: Number,
103
- required: true,
104
- }
105
- },
106
- consumptionPeriod: {
107
- startDate: {
108
- type: Date,
109
- required: true
110
- },
111
- endDate: {
112
- type: Date,
113
- required: true
114
- }
115
- },
116
-
117
- // Charges
118
- charges: {
119
- waterCharge: {
120
- type: Number,
121
- required: true
122
- },
123
- sewerCharge: {
124
- type: Number,
125
- default: 0
126
- },
127
- tax: {
128
- type: Number,
129
- default: 0
130
- },
131
- fixedCharge: {
132
- type: Number,
133
- default: 0
134
- },
135
- totalMonthlyBill: {
136
- type: Number,
137
- required: true
138
- }
139
- },
140
- amountPaid: {
141
- type: Number,
142
- default: 0
143
- },
144
- imageUrl: { type: String, trim: true },
145
-
146
- // Invoice Note & Status
147
- invoiceNote: {
148
- type: String,
149
- default: 'Payment is due within 10 days'
150
- },
151
- status: {
152
- type: String,
153
- required: true,
154
- enum: ['Pending', 'Paid', 'Partially Paid', 'Cancelled', 'Overdue', 'Unpaid'],
155
- default: 'Pending'
156
- },
157
-
158
- // Currency Info
159
- currency: {
160
- id: {
161
- type: mongoose.Schema.Types.ObjectId
162
- },
163
- name: {
164
- type: String,
165
- default: 'Kenyan Shilling'
166
- },
167
- code: {
168
- type: String,
169
- default: 'KES'
170
- },
171
- symbol: {
172
- type: String,
173
- default: 'KSh'
174
- }
175
- },
176
-
177
- // Payment & Reconciliation
178
- reconciliationHistory: [
179
- {
180
- date: {
181
- type: Date,
182
- default: Date.now
183
- },
184
- amount: {
185
- type: Number,
186
- required: true
187
- },
188
- type: {
189
- type: String,
190
- default: 'Manual'
191
- },
192
- paymentReference: {
193
- type: String
194
- },
195
- paymentCompletion: {
196
- type: String,
197
- default: 'Completed'
198
- },
199
- sourceInvoice: {
200
- type: String
201
- },
202
- destinationInvoice: {
203
- type: String
204
- },
205
- notes: {
206
- type: String
207
- },
208
- remainingBalance: {
209
- type: Number
210
- }
211
- }
212
- ],
213
- },
214
- {
215
- timestamps: true
216
- }
217
- );
218
-
219
- waterInvoiceSchema.pre('save', function (next) {
220
- if (this.isModified('dueDate') || this.isNew) {
221
- const today = new Date();
222
- if (this.dueDate < today && this.status === 'Pending') {
223
- this.status = 'Overdue';
224
- }
225
- }
226
- next();
227
- });
228
-
229
- const WaterInvoice = mongoose.model('WaterInvoice', waterInvoiceSchema);
230
-
1
+ const mongoose = require('mongoose');
2
+
3
+ const waterInvoiceSchema = new mongoose.Schema(
4
+ {
5
+ // Basic identifiers
6
+ invoiceNumber: {
7
+ type: String,
8
+ required: true,
9
+ unique: true
10
+ },
11
+ accountNumber: {
12
+ type: String,
13
+ required: true
14
+ },
15
+ unitName: {
16
+ type: String,
17
+ required: true,
18
+ },
19
+ yearMonth: {
20
+ type: String,
21
+ required: true,
22
+ },
23
+ facilityId: {
24
+ type: mongoose.Schema.Types.ObjectId,
25
+ required: true
26
+ },
27
+ customerId: {
28
+ type: mongoose.Schema.Types.ObjectId,
29
+ required: true
30
+ },
31
+ billingType: {
32
+ type: String,
33
+ enum: ['postpaid'],
34
+ },
35
+ balanceBroughtForward: {
36
+ type: Number,
37
+ default: 0
38
+ },
39
+
40
+ // Biller Address Information (added from WaterMeterSettings)
41
+ billerAddress: {
42
+ name: {
43
+ type: String,
44
+ required: [true, "Biller name is required"],
45
+ trim: true,
46
+ minlength: [1, "Biller name must be at least 1 character long"],
47
+ },
48
+ email: {
49
+ type: String,
50
+ required: [true, "Biller email is required"],
51
+ trim: true,
52
+ lowercase: true,
53
+ validate: {
54
+ validator: function (v) {
55
+ return /^\w+([\.-]?\w+)@\w+([\.-]?\w+)(\.\w{2,3})+$/.test(v);
56
+ },
57
+ message: "Please enter a valid email address"
58
+ }
59
+ },
60
+ phone: {
61
+ type: String,
62
+ required: [true, "Biller phone is required"],
63
+ trim: true,
64
+ },
65
+ address: {
66
+ type: String,
67
+ required: [true, "Biller address is required"],
68
+ trim: true,
69
+ },
70
+ city: {
71
+ type: String,
72
+ required: [true, "Biller city is required"],
73
+ trim: true,
74
+ }
75
+ },
76
+
77
+ // Dates
78
+ dateIssued: {
79
+ type: Date,
80
+ default: Date.now
81
+ },
82
+ dueDate: {
83
+ type: Date,
84
+ required: true
85
+ },
86
+
87
+ // Meter & Consumption Details
88
+ meterNumber: {
89
+ type: String,
90
+ required: true
91
+ },
92
+ meterReadings: {
93
+ previousReading: {
94
+ type: Number,
95
+ required: true
96
+ },
97
+ currentReading: {
98
+ type: Number,
99
+ required: true
100
+ },
101
+ usage: {
102
+ type: Number,
103
+ required: true,
104
+ }
105
+ },
106
+ consumptionPeriod: {
107
+ startDate: {
108
+ type: Date,
109
+ required: true
110
+ },
111
+ endDate: {
112
+ type: Date,
113
+ required: true
114
+ }
115
+ },
116
+
117
+ // Charges
118
+ charges: {
119
+ waterCharge: {
120
+ type: Number,
121
+ required: true
122
+ },
123
+ sewerCharge: {
124
+ type: Number,
125
+ default: 0
126
+ },
127
+ tax: {
128
+ type: Number,
129
+ default: 0
130
+ },
131
+ fixedCharge: {
132
+ type: Number,
133
+ default: 0
134
+ },
135
+ totalMonthlyBill: {
136
+ type: Number,
137
+ required: true
138
+ }
139
+ },
140
+ amountPaid: {
141
+ type: Number,
142
+ default: 0
143
+ },
144
+ imageUrl: { type: String, trim: true },
145
+
146
+ // Invoice Note & Status
147
+ invoiceNote: {
148
+ type: String,
149
+ default: 'Payment is due within 10 days'
150
+ },
151
+ status: {
152
+ type: String,
153
+ required: true,
154
+ enum: ['Pending', 'Paid', 'Partially Paid', 'Cancelled', 'Overdue', 'Unpaid'],
155
+ default: 'Pending'
156
+ },
157
+
158
+ // Currency Info
159
+ currency: {
160
+ id: {
161
+ type: mongoose.Schema.Types.ObjectId
162
+ },
163
+ name: {
164
+ type: String,
165
+ default: 'Kenyan Shilling'
166
+ },
167
+ code: {
168
+ type: String,
169
+ default: 'KES'
170
+ },
171
+ symbol: {
172
+ type: String,
173
+ default: 'KSh'
174
+ }
175
+ },
176
+
177
+ // Payment & Reconciliation
178
+ reconciliationHistory: [
179
+ {
180
+ date: {
181
+ type: Date,
182
+ default: Date.now
183
+ },
184
+ amount: {
185
+ type: Number,
186
+ required: true
187
+ },
188
+ type: {
189
+ type: String,
190
+ default: 'Manual'
191
+ },
192
+ paymentReference: {
193
+ type: String
194
+ },
195
+ paymentCompletion: {
196
+ type: String,
197
+ default: 'Completed'
198
+ },
199
+ sourceInvoice: {
200
+ type: String
201
+ },
202
+ destinationInvoice: {
203
+ type: String
204
+ },
205
+ notes: {
206
+ type: String
207
+ },
208
+ remainingBalance: {
209
+ type: Number
210
+ }
211
+ }
212
+ ],
213
+ },
214
+ {
215
+ timestamps: true
216
+ }
217
+ );
218
+
219
+ waterInvoiceSchema.pre('save', function (next) {
220
+ if (this.isModified('dueDate') || this.isNew) {
221
+ const today = new Date();
222
+ if (this.dueDate < today && this.status === 'Pending') {
223
+ this.status = 'Overdue';
224
+ }
225
+ }
226
+ next();
227
+ });
228
+
229
+ const WaterInvoice = mongoose.model('WaterInvoice', waterInvoiceSchema);
230
+
231
231
  module.exports = WaterInvoice;
@@ -1,33 +1,33 @@
1
- const mongoose = require('mongoose');
2
-
3
- const meterCommandQueueSchema = new mongoose.Schema({
4
- meterNumber: {
5
- type: String,
6
- required: true
7
- },
8
- concentratorSerialNumber: {
9
- type: String,
10
- required: true
11
- },
12
- commandType: {
13
- type: String,
14
- enum: ['open', 'close', 'read'],
15
- required: true
16
- },
17
- status: {
18
- type: String,
19
- enum: ['pending', 'sent', 'acknowledged', 'failed'],
20
- default: 'pending'
21
- },
22
- retryCount: {
23
- type: Number,
24
- default: 0
25
- },
26
- sentAt: {
27
- type: Date
28
- }
29
- }, { timestamps: true });
30
-
31
- const MeterCommandQueue = mongoose.model('MeterCommandQueue', meterCommandQueueSchema);
32
-
33
- module.exports = MeterCommandQueue;
1
+ const mongoose = require('mongoose');
2
+
3
+ const meterCommandQueueSchema = new mongoose.Schema({
4
+ meterNumber: {
5
+ type: String,
6
+ required: true
7
+ },
8
+ concentratorSerialNumber: {
9
+ type: String,
10
+ required: true
11
+ },
12
+ commandType: {
13
+ type: String,
14
+ enum: ['open', 'close', 'read'],
15
+ required: true
16
+ },
17
+ status: {
18
+ type: String,
19
+ enum: ['pending', 'sent', 'acknowledged', 'failed'],
20
+ default: 'pending'
21
+ },
22
+ retryCount: {
23
+ type: Number,
24
+ default: 0
25
+ },
26
+ sentAt: {
27
+ type: Date
28
+ }
29
+ }, { timestamps: true });
30
+
31
+ const MeterCommandQueue = mongoose.model('MeterCommandQueue', meterCommandQueueSchema);
32
+
33
+ module.exports = MeterCommandQueue;
@@ -1,78 +1,78 @@
1
- const mongoose = require('mongoose');
2
-
3
- const waterMeterAccountSchema = new mongoose.Schema({
4
- facilityId: {
5
- type: mongoose.Schema.Types.ObjectId,
6
- ref: 'Facility',
7
- required: true,
8
- },
9
- account_no: {
10
- type: String,
11
- required: true,
12
- trim: true
13
- },
14
- customerId: {
15
- type: mongoose.Schema.Types.ObjectId,
16
- ref: 'Customer',
17
- },
18
- customerName: {
19
- type: String,
20
- required: true,
21
- trim: true
22
- },
23
- phoneNumber: {
24
- type: String,
25
- required: true,
26
- trim: true
27
- },
28
- email: {
29
- type: String,
30
- required: true,
31
- trim: true
32
- },
33
- meterNumber: {
34
- type: String,
35
- required: true,
36
- unique: true,
37
- trim: true
38
- },
39
- unitId: {
40
- type: mongoose.Schema.Types.ObjectId,
41
- ref: 'Unit',
42
- },
43
- payment_type: {
44
- type: String,
45
- required: true,
46
- enum: ['Postpaid', 'Prepaid']
47
- },
48
- previousReading: {
49
- type: Number,
50
- required: true,
51
- default: 0
52
- },
53
- currentReading: {
54
- type: Number,
55
- required: true
56
- },
57
- status: {
58
- type: String,
59
- required: true,
60
- enum: ['Active', 'Inactive'],
61
- default: 'Active'
62
- },
63
- created_on: {
64
- type: Date,
65
- required: true,
66
- default: Date.now
67
- },
68
- meter_id: {
69
- type: mongoose.Schema.Types.ObjectId,
70
- ref: 'WaterMeter',
71
- }
72
- }, {
73
- timestamps: true
74
- });
75
-
76
- const WaterMeterAccount = mongoose.model('WaterMeterAccount', waterMeterAccountSchema);
77
-
78
- module.exports = WaterMeterAccount;
1
+ const mongoose = require('mongoose');
2
+
3
+ const waterMeterAccountSchema = new mongoose.Schema({
4
+ facilityId: {
5
+ type: mongoose.Schema.Types.ObjectId,
6
+ ref: 'Facility',
7
+ required: true,
8
+ },
9
+ account_no: {
10
+ type: String,
11
+ required: true,
12
+ trim: true
13
+ },
14
+ customerId: {
15
+ type: mongoose.Schema.Types.ObjectId,
16
+ ref: 'Customer',
17
+ },
18
+ customerName: {
19
+ type: String,
20
+ required: true,
21
+ trim: true
22
+ },
23
+ phoneNumber: {
24
+ type: String,
25
+ required: true,
26
+ trim: true
27
+ },
28
+ email: {
29
+ type: String,
30
+ required: true,
31
+ trim: true
32
+ },
33
+ meterNumber: {
34
+ type: String,
35
+ required: true,
36
+ unique: true,
37
+ trim: true
38
+ },
39
+ unitId: {
40
+ type: mongoose.Schema.Types.ObjectId,
41
+ ref: 'Unit',
42
+ },
43
+ payment_type: {
44
+ type: String,
45
+ required: true,
46
+ enum: ['Postpaid', 'Prepaid']
47
+ },
48
+ previousReading: {
49
+ type: Number,
50
+ required: true,
51
+ default: 0
52
+ },
53
+ currentReading: {
54
+ type: Number,
55
+ required: true
56
+ },
57
+ status: {
58
+ type: String,
59
+ required: true,
60
+ enum: ['Active', 'Inactive'],
61
+ default: 'Active'
62
+ },
63
+ created_on: {
64
+ type: Date,
65
+ required: true,
66
+ default: Date.now
67
+ },
68
+ meter_id: {
69
+ type: mongoose.Schema.Types.ObjectId,
70
+ ref: 'WaterMeter',
71
+ }
72
+ }, {
73
+ timestamps: true
74
+ });
75
+
76
+ const WaterMeterAccount = mongoose.model('WaterMeterAccount', waterMeterAccountSchema);
77
+
78
+ module.exports = WaterMeterAccount;