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,208 +1,208 @@
1
- const mongoose = require('mongoose');
2
-
3
- const CustomerSchema = new mongoose.Schema({
4
- customerNumber: {
5
- type: Number,
6
- required: true
7
- },
8
- firstName: {
9
- type: String,
10
- required: true,
11
- },
12
- lastName: {
13
- type: String,
14
- required: true,
15
- },
16
- phoneNumber: {
17
- type: String,
18
- required: true,
19
- },
20
- idNumber: {
21
- type: String,
22
- required: true,
23
- },
24
- email: {
25
- type: String,
26
- required: true
27
- },
28
- nextOfKin: [
29
- {
30
- name: {
31
- type: String,
32
- },
33
- relationship: {
34
- type: String,
35
- },
36
- phoneNumber: {
37
- type: String,
38
- },
39
- email: {
40
- type: String,
41
- },
42
- canReceiveInvoice: {
43
- type: Boolean,
44
- default: false
45
- }
46
- }
47
- ],
48
- customerType: {
49
- type: String,
50
- required: true
51
- },
52
- residentType: {
53
- type: String,
54
- required: true
55
- },
56
- facilityId: {
57
- type: mongoose.Schema.Types.ObjectId,
58
- ref: 'Facility'
59
- },
60
- status: {
61
- type: String,
62
- required: false,
63
- enum: ['Active', 'Inactive']
64
- },
65
- quickBooksId: {
66
- type: String,
67
- },
68
- nonResidentUsage: {
69
- type: String,
70
- },
71
-
72
- familyMembers: [
73
- {
74
- no: {
75
- type: Number,
76
- required: false
77
- },
78
- name: {
79
- type: String,
80
- required: false,
81
- },
82
- phoneNumber: {
83
- type: String,
84
- required: false,
85
- },
86
- email: {
87
- type: String,
88
- required: false
89
- },
90
- relation: {
91
- type: String,
92
- required: false,
93
- },
94
- qrCode: {
95
- type: Boolean,
96
- required: false
97
- },
98
- addVisitor: {
99
- type: Boolean,
100
- required: false
101
- },
102
- receiveMessage: {
103
- type: Boolean,
104
- required: false
105
- },
106
- qrUniqueCode:
107
- {
108
- type: String,
109
- unique: false
110
- },
111
- disabled: {
112
- type: Boolean,
113
- required: false
114
- }
115
- },
116
- ],
117
- staff: [
118
- {
119
- no: {
120
- type: Number,
121
- required: false
122
- },
123
- name: {
124
- type: String,
125
- required: false,
126
- },
127
- phoneNumber: {
128
- type: String,
129
- required: false,
130
- },
131
- jobRole: {
132
- type: String,
133
- required: false,
134
- },
135
- qrCode: {
136
- type: Boolean,
137
- required: false
138
- },
139
- qrUniqueCode:
140
- { type: String, unique: false },
141
-
142
- disabled: {
143
- type: Boolean,
144
- required: false
145
- },
146
-
147
- },
148
- ],
149
- vehicles: [
150
- {
151
- no: {
152
- type: Number,
153
- required: false
154
- },
155
- registration: {
156
- type: String,
157
- required: false
158
- },
159
- name: {
160
- type: String,
161
- required: false
162
- },
163
- model: {
164
- type: String,
165
- required: false
166
- },
167
- color: {
168
- type: String,
169
- required: false
170
- },
171
- plateNumber: {
172
- type: String,
173
- required: false
174
- },
175
-
176
- qrCode: {
177
- type: Boolean,
178
- required: false
179
- },
180
- qrUniqueCode: { type: String, unique: false }
181
- ,
182
- disabled: {
183
- type: Boolean,
184
- required: false
185
- }
186
- },
187
- ],
188
- customerDocuments: [
189
- {
190
- documentName: {
191
- type: String,
192
- required: true
193
- },
194
- documentType: {
195
- type: String,
196
- required: true
197
- },
198
- document: {
199
- type: String,
200
- required: true
201
- }
202
- }
203
- ]
204
- });
205
-
206
- const Customer = mongoose.model('Customer', CustomerSchema);
207
-
208
- module.exports = Customer;
1
+ const mongoose = require('mongoose');
2
+
3
+ const CustomerSchema = new mongoose.Schema({
4
+ customerNumber: {
5
+ type: Number,
6
+ required: true
7
+ },
8
+ firstName: {
9
+ type: String,
10
+ required: true,
11
+ },
12
+ lastName: {
13
+ type: String,
14
+ required: true,
15
+ },
16
+ phoneNumber: {
17
+ type: String,
18
+ required: true,
19
+ },
20
+ idNumber: {
21
+ type: String,
22
+ required: true,
23
+ },
24
+ email: {
25
+ type: String,
26
+ required: true
27
+ },
28
+ nextOfKin: [
29
+ {
30
+ name: {
31
+ type: String,
32
+ },
33
+ relationship: {
34
+ type: String,
35
+ },
36
+ phoneNumber: {
37
+ type: String,
38
+ },
39
+ email: {
40
+ type: String,
41
+ },
42
+ canReceiveInvoice: {
43
+ type: Boolean,
44
+ default: false
45
+ }
46
+ }
47
+ ],
48
+ customerType: {
49
+ type: String,
50
+ required: true
51
+ },
52
+ residentType: {
53
+ type: String,
54
+ required: true
55
+ },
56
+ facilityId: {
57
+ type: mongoose.Schema.Types.ObjectId,
58
+ ref: 'Facility'
59
+ },
60
+ status: {
61
+ type: String,
62
+ required: false,
63
+ enum: ['Active', 'Inactive']
64
+ },
65
+ quickBooksId: {
66
+ type: String,
67
+ },
68
+ nonResidentUsage: {
69
+ type: String,
70
+ },
71
+
72
+ familyMembers: [
73
+ {
74
+ no: {
75
+ type: Number,
76
+ required: false
77
+ },
78
+ name: {
79
+ type: String,
80
+ required: false,
81
+ },
82
+ phoneNumber: {
83
+ type: String,
84
+ required: false,
85
+ },
86
+ email: {
87
+ type: String,
88
+ required: false
89
+ },
90
+ relation: {
91
+ type: String,
92
+ required: false,
93
+ },
94
+ qrCode: {
95
+ type: Boolean,
96
+ required: false
97
+ },
98
+ addVisitor: {
99
+ type: Boolean,
100
+ required: false
101
+ },
102
+ receiveMessage: {
103
+ type: Boolean,
104
+ required: false
105
+ },
106
+ qrUniqueCode:
107
+ {
108
+ type: String,
109
+ unique: false
110
+ },
111
+ disabled: {
112
+ type: Boolean,
113
+ required: false
114
+ }
115
+ },
116
+ ],
117
+ staff: [
118
+ {
119
+ no: {
120
+ type: Number,
121
+ required: false
122
+ },
123
+ name: {
124
+ type: String,
125
+ required: false,
126
+ },
127
+ phoneNumber: {
128
+ type: String,
129
+ required: false,
130
+ },
131
+ jobRole: {
132
+ type: String,
133
+ required: false,
134
+ },
135
+ qrCode: {
136
+ type: Boolean,
137
+ required: false
138
+ },
139
+ qrUniqueCode:
140
+ { type: String, unique: false },
141
+
142
+ disabled: {
143
+ type: Boolean,
144
+ required: false
145
+ },
146
+
147
+ },
148
+ ],
149
+ vehicles: [
150
+ {
151
+ no: {
152
+ type: Number,
153
+ required: false
154
+ },
155
+ registration: {
156
+ type: String,
157
+ required: false
158
+ },
159
+ name: {
160
+ type: String,
161
+ required: false
162
+ },
163
+ model: {
164
+ type: String,
165
+ required: false
166
+ },
167
+ color: {
168
+ type: String,
169
+ required: false
170
+ },
171
+ plateNumber: {
172
+ type: String,
173
+ required: false
174
+ },
175
+
176
+ qrCode: {
177
+ type: Boolean,
178
+ required: false
179
+ },
180
+ qrUniqueCode: { type: String, unique: false }
181
+ ,
182
+ disabled: {
183
+ type: Boolean,
184
+ required: false
185
+ }
186
+ },
187
+ ],
188
+ customerDocuments: [
189
+ {
190
+ documentName: {
191
+ type: String,
192
+ required: true
193
+ },
194
+ documentType: {
195
+ type: String,
196
+ required: true
197
+ },
198
+ document: {
199
+ type: String,
200
+ required: true
201
+ }
202
+ }
203
+ ]
204
+ });
205
+
206
+ const Customer = mongoose.model('Customer', CustomerSchema);
207
+
208
+ module.exports = Customer;
@@ -0,0 +1,97 @@
1
+ const mongoose = require("mongoose");
2
+
3
+ // Child property schema with date
4
+ const childPropertySchema = new mongoose.Schema(
5
+ {
6
+ value: {
7
+ type: mongoose.Schema.Types.Mixed, // String, Boolean, or Number
8
+ required: true,
9
+ },
10
+ date: {
11
+ type: Date,
12
+ required: true,
13
+ },
14
+ },
15
+ { _id: false },
16
+ );
17
+
18
+ // Main facilities monitoring schema
19
+ const dailyChecklistSchema = new mongoose.Schema(
20
+ {
21
+ facilityId: {
22
+ type: String,
23
+ required: true,
24
+ },
25
+
26
+ // Dynamic parent-child structure with dates
27
+ // Parent_name -> child_name -> { value, date }
28
+ data: {
29
+ type: Map,
30
+ of: {
31
+ type: Map,
32
+ of: childPropertySchema,
33
+ },
34
+ default: new Map(),
35
+ },
36
+ },
37
+ {
38
+ timestamps: true,
39
+ },
40
+ );
41
+
42
+ // Helper methods
43
+ dailyChecklistSchema.methods.setValue = function (
44
+ parentName,
45
+ childName,
46
+ value,
47
+ date = new Date(),
48
+ ) {
49
+ if (!this.data.has(parentName)) {
50
+ this.data.set(parentName, new Map());
51
+ }
52
+
53
+ this.data.get(parentName).set(childName, { value, date });
54
+ this.markModified("data");
55
+ };
56
+
57
+ dailyChecklistSchema.methods.getValue = function (parentName, childName) {
58
+ const parent = this.data.get(parentName);
59
+ if (parent) {
60
+ const child = parent.get(childName);
61
+ return child ? child.value : null;
62
+ }
63
+ return null;
64
+ };
65
+
66
+ dailyChecklistSchema.methods.getChildWithDate = function (
67
+ parentName,
68
+ childName,
69
+ ) {
70
+ const parent = this.data.get(parentName);
71
+ if (parent) {
72
+ return parent.get(childName) || null;
73
+ }
74
+ return null;
75
+ };
76
+
77
+ dailyChecklistSchema.methods.createParent = function (parentName) {
78
+ if (!this.data.has(parentName)) {
79
+ this.data.set(parentName, new Map());
80
+ this.markModified("data");
81
+ }
82
+ };
83
+
84
+ dailyChecklistSchema.methods.hasParent = function (parentName) {
85
+ return this.data.has(parentName);
86
+ };
87
+
88
+ dailyChecklistSchema.methods.getParentNames = function () {
89
+ return Array.from(this.data.keys());
90
+ };
91
+
92
+ dailyChecklistSchema.methods.getChildNames = function (parentName) {
93
+ const parent = this.data.get(parentName);
94
+ return parent ? Array.from(parent.keys()) : [];
95
+ };
96
+
97
+ module.exports = mongoose.model("DailyChecklist", dailyChecklistSchema);
@@ -1,18 +1,18 @@
1
- const mongoose = require("mongoose");
2
-
3
- const defaultPaymentDetailsSchema = new mongoose.Schema({
4
- shortCode: { type: String },
5
- passkey: { type: String },
6
- authorizationKey: {
7
- type: String,
8
- },
9
- module: {
10
- type: String,
11
- enum: ["All", "Water", "Electricity", "Levy","Lease"],
12
- default: "All"
13
- },
14
- });
15
-
16
- const DefaultPaymentDetails = mongoose.model('DefaultPaymentDetails', defaultPaymentDetailsSchema);
17
-
1
+ const mongoose = require("mongoose");
2
+
3
+ const defaultPaymentDetailsSchema = new mongoose.Schema({
4
+ shortCode: { type: String },
5
+ passkey: { type: String },
6
+ authorizationKey: {
7
+ type: String,
8
+ },
9
+ module: {
10
+ type: String,
11
+ enum: ["All", "Water", "Electricity", "Levy","Lease"],
12
+ default: "All"
13
+ },
14
+ });
15
+
16
+ const DefaultPaymentDetails = mongoose.model('DefaultPaymentDetails', defaultPaymentDetailsSchema);
17
+
18
18
  module.exports = DefaultPaymentDetails;
@@ -1,18 +1,18 @@
1
- const mongoose = require('mongoose');
2
-
3
- const deliveryTimeMarkSchema = new mongoose.Schema({
4
- deliveryDays: {
5
- type: Number,
6
- required: true
7
- },
8
- marks: {
9
- type: Number,
10
- required: true
11
- }
12
- }, {
13
- timestamps: true
14
- });
15
-
16
- const DeliveryTimeMark = mongoose.model('DeliveryTimeMark', deliveryTimeMarkSchema);
17
-
18
- module.exports = DeliveryTimeMark;
1
+ const mongoose = require('mongoose');
2
+
3
+ const deliveryTimeMarkSchema = new mongoose.Schema({
4
+ deliveryDays: {
5
+ type: Number,
6
+ required: true
7
+ },
8
+ marks: {
9
+ type: Number,
10
+ required: true
11
+ }
12
+ }, {
13
+ timestamps: true
14
+ });
15
+
16
+ const DeliveryTimeMark = mongoose.model('DeliveryTimeMark', deliveryTimeMarkSchema);
17
+
18
+ module.exports = DeliveryTimeMark;