payservedb 4.7.5 → 4.7.6

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 (98) hide show
  1. package/.env +2 -2
  2. package/index.js +167 -167
  3. package/package.json +17 -17
  4. package/src/models/account.js +36 -36
  5. package/src/models/analog_water_billing.js +58 -58
  6. package/src/models/apilog.js +18 -18
  7. package/src/models/approvalsWorkflows.js +49 -49
  8. package/src/models/archivedapilog.js +18 -18
  9. package/src/models/archivedauditlog.js +83 -83
  10. package/src/models/asset.js +34 -34
  11. package/src/models/auditlog.js +83 -83
  12. package/src/models/bankdetails.js +40 -40
  13. package/src/models/bookinganalytics.js +63 -63
  14. package/src/models/bookingconfig.js +45 -45
  15. package/src/models/bookingproperty.js +112 -112
  16. package/src/models/bookingreservation.js +192 -192
  17. package/src/models/bookingrevenuerecord.js +84 -84
  18. package/src/models/budget.js +33 -33
  19. package/src/models/budgetCategory.js +19 -19
  20. package/src/models/campaigns.js +72 -72
  21. package/src/models/cashpayment.js +262 -262
  22. package/src/models/combinedUnits.js +62 -62
  23. package/src/models/common_area_electricity.js +38 -38
  24. package/src/models/common_area_generator.js +38 -38
  25. package/src/models/common_area_water.js +39 -39
  26. package/src/models/company.js +53 -53
  27. package/src/models/country_tax.js +42 -42
  28. package/src/models/currency_settings.js +39 -39
  29. package/src/models/customer.js +200 -200
  30. package/src/models/default_payment_details.js +17 -17
  31. package/src/models/dutyroster.js +129 -51
  32. package/src/models/email.js +24 -24
  33. package/src/models/entry_exit.js +53 -53
  34. package/src/models/expense.js +55 -55
  35. package/src/models/facility.js +60 -60
  36. package/src/models/facility_payment_details.js +20 -20
  37. package/src/models/facilityasset.js +25 -25
  38. package/src/models/faq.js +18 -18
  39. package/src/models/guard.js +47 -47
  40. package/src/models/handover.js +241 -241
  41. package/src/models/invoice.js +276 -276
  42. package/src/models/item_inspection.js +67 -67
  43. package/src/models/leaseagreement.js +168 -168
  44. package/src/models/leasetemplate.js +17 -17
  45. package/src/models/levy.js +84 -84
  46. package/src/models/levy_invoice_settings.js +26 -26
  47. package/src/models/levycontract.js +77 -77
  48. package/src/models/levytype.js +23 -23
  49. package/src/models/maintenance_service_vendor.js +38 -38
  50. package/src/models/maintenance_services.js +17 -17
  51. package/src/models/maintenancerequisition.js +31 -31
  52. package/src/models/message.js +38 -38
  53. package/src/models/module.js +21 -21
  54. package/src/models/notification.js +24 -24
  55. package/src/models/penalty.js +76 -76
  56. package/src/models/purchase_order.js +191 -191
  57. package/src/models/purchase_request.js +65 -65
  58. package/src/models/quotation.js +267 -267
  59. package/src/models/refresh_token.js +23 -23
  60. package/src/models/reminder.js +161 -161
  61. package/src/models/report.js +13 -13
  62. package/src/models/resident.js +121 -121
  63. package/src/models/service_charge_invoice_upload.js +42 -42
  64. package/src/models/service_charge_payments.js +27 -27
  65. package/src/models/servicerequest.js +55 -55
  66. package/src/models/settings.js +62 -62
  67. package/src/models/smart_meter_daily_consumption.js +44 -44
  68. package/src/models/sms_africastalking.js +20 -20
  69. package/src/models/sms_meliora.js +16 -16
  70. package/src/models/staff.js +36 -36
  71. package/src/models/stocksandspare.js +34 -34
  72. package/src/models/suppliers.js +68 -68
  73. package/src/models/tickets.js +109 -109
  74. package/src/models/unitasset.js +25 -25
  75. package/src/models/units.js +86 -86
  76. package/src/models/user.js +94 -94
  77. package/src/models/valueaddedservices.js +36 -36
  78. package/src/models/vas_invoices_upload.js +50 -50
  79. package/src/models/vas_payments.js +24 -24
  80. package/src/models/vasinvoice.js +159 -159
  81. package/src/models/vasvendor.js +57 -57
  82. package/src/models/visitLog.js +86 -86
  83. package/src/models/visitor.js +63 -63
  84. package/src/models/waitlist.js +45 -45
  85. package/src/models/water_invoice.js +192 -192
  86. package/src/models/water_meter_account.js +74 -74
  87. package/src/models/water_meter_communication.js +17 -17
  88. package/src/models/water_meter_concentrator.js +59 -59
  89. package/src/models/water_meter_daily_history.js +31 -31
  90. package/src/models/water_meter_iot_cards.js +34 -34
  91. package/src/models/water_meter_manufacturer.js +35 -35
  92. package/src/models/water_meter_monthly_history.js +37 -37
  93. package/src/models/water_meter_settings.js +88 -88
  94. package/src/models/water_meter_single_day_history.js +31 -31
  95. package/src/models/water_meter_size.js +15 -15
  96. package/src/models/water_meters.js +103 -103
  97. package/src/models/water_meters_delivery.js +76 -76
  98. package/src/models/workorder.js +49 -49
@@ -1,200 +1,200 @@
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
- nextOfKinName: {
29
- type: String,
30
- required: true
31
- },
32
- nextOfKinRelationship: {
33
- type: String,
34
- required: true
35
- },
36
- nextOfKinContact: {
37
- type: String,
38
- required: true
39
- },
40
- customerType: {
41
- type: String,
42
- required: true
43
- },
44
- residentType: {
45
- type: String,
46
- required: true
47
- },
48
- facilityId: {
49
- type: mongoose.Schema.Types.ObjectId,
50
- ref: 'Facility'
51
- },
52
- status: {
53
- type: String,
54
- required: false,
55
- enum: ['Active', 'Inactive']
56
- },
57
- quickBooksId: {
58
- type: String,
59
- },
60
- nonResidentUsage: {
61
- type: String,
62
- },
63
-
64
- familyMembers: [
65
- {
66
- no: {
67
- type: Number,
68
- required: false
69
- },
70
- name: {
71
- type: String,
72
- required: false,
73
- },
74
- phoneNumber: {
75
- type: String,
76
- required: false,
77
- },
78
- email: {
79
- type: String,
80
- required: false
81
- },
82
- relation: {
83
- type: String,
84
- required: false,
85
- },
86
- qrCode: {
87
- type: Boolean,
88
- required: false
89
- },
90
- addVisitor: {
91
- type: Boolean,
92
- required: false
93
- },
94
- receiveMessage: {
95
- type: Boolean,
96
- required: false
97
- },
98
- qrUniqueCode:
99
- {
100
- type: String,
101
- unique: false
102
- },
103
- disabled: {
104
- type: Boolean,
105
- required: false
106
- }
107
- },
108
- ],
109
- staff: [
110
- {
111
- no: {
112
- type: Number,
113
- required: false
114
- },
115
- name: {
116
- type: String,
117
- required: false,
118
- },
119
- phoneNumber: {
120
- type: String,
121
- required: false,
122
- },
123
- jobRole: {
124
- type: String,
125
- required: false,
126
- },
127
- qrCode: {
128
- type: Boolean,
129
- required: false
130
- },
131
- qrUniqueCode:
132
- { type: String, unique: false },
133
-
134
- disabled: {
135
- type: Boolean,
136
- required: false
137
- },
138
-
139
- },
140
- ],
141
- vehicles: [
142
- {
143
- no: {
144
- type: Number,
145
- required: false
146
- },
147
- registration: {
148
- type: String,
149
- required: false
150
- },
151
- name: {
152
- type: String,
153
- required: false
154
- },
155
- model: {
156
- type: String,
157
- required: false
158
- },
159
- color: {
160
- type: String,
161
- required: false
162
- },
163
- plateNumber: {
164
- type: String,
165
- required: false
166
- },
167
-
168
- qrCode: {
169
- type: Boolean,
170
- required: false
171
- },
172
- qrUniqueCode: { type: String, unique: false }
173
- ,
174
- disabled: {
175
- type: Boolean,
176
- required: false
177
- }
178
- },
179
- ],
180
- customerDocuments: [
181
- {
182
- documentName: {
183
- type: String,
184
- required: true
185
- },
186
- documentType: {
187
- type: String,
188
- required: true
189
- },
190
- document: {
191
- type: String,
192
- required: true
193
- }
194
- }
195
- ]
196
- });
197
-
198
- const Customer = mongoose.model('Customer', CustomerSchema);
199
-
200
- 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
+ nextOfKinName: {
29
+ type: String,
30
+ required: true
31
+ },
32
+ nextOfKinRelationship: {
33
+ type: String,
34
+ required: true
35
+ },
36
+ nextOfKinContact: {
37
+ type: String,
38
+ required: true
39
+ },
40
+ customerType: {
41
+ type: String,
42
+ required: true
43
+ },
44
+ residentType: {
45
+ type: String,
46
+ required: true
47
+ },
48
+ facilityId: {
49
+ type: mongoose.Schema.Types.ObjectId,
50
+ ref: 'Facility'
51
+ },
52
+ status: {
53
+ type: String,
54
+ required: false,
55
+ enum: ['Active', 'Inactive']
56
+ },
57
+ quickBooksId: {
58
+ type: String,
59
+ },
60
+ nonResidentUsage: {
61
+ type: String,
62
+ },
63
+
64
+ familyMembers: [
65
+ {
66
+ no: {
67
+ type: Number,
68
+ required: false
69
+ },
70
+ name: {
71
+ type: String,
72
+ required: false,
73
+ },
74
+ phoneNumber: {
75
+ type: String,
76
+ required: false,
77
+ },
78
+ email: {
79
+ type: String,
80
+ required: false
81
+ },
82
+ relation: {
83
+ type: String,
84
+ required: false,
85
+ },
86
+ qrCode: {
87
+ type: Boolean,
88
+ required: false
89
+ },
90
+ addVisitor: {
91
+ type: Boolean,
92
+ required: false
93
+ },
94
+ receiveMessage: {
95
+ type: Boolean,
96
+ required: false
97
+ },
98
+ qrUniqueCode:
99
+ {
100
+ type: String,
101
+ unique: false
102
+ },
103
+ disabled: {
104
+ type: Boolean,
105
+ required: false
106
+ }
107
+ },
108
+ ],
109
+ staff: [
110
+ {
111
+ no: {
112
+ type: Number,
113
+ required: false
114
+ },
115
+ name: {
116
+ type: String,
117
+ required: false,
118
+ },
119
+ phoneNumber: {
120
+ type: String,
121
+ required: false,
122
+ },
123
+ jobRole: {
124
+ type: String,
125
+ required: false,
126
+ },
127
+ qrCode: {
128
+ type: Boolean,
129
+ required: false
130
+ },
131
+ qrUniqueCode:
132
+ { type: String, unique: false },
133
+
134
+ disabled: {
135
+ type: Boolean,
136
+ required: false
137
+ },
138
+
139
+ },
140
+ ],
141
+ vehicles: [
142
+ {
143
+ no: {
144
+ type: Number,
145
+ required: false
146
+ },
147
+ registration: {
148
+ type: String,
149
+ required: false
150
+ },
151
+ name: {
152
+ type: String,
153
+ required: false
154
+ },
155
+ model: {
156
+ type: String,
157
+ required: false
158
+ },
159
+ color: {
160
+ type: String,
161
+ required: false
162
+ },
163
+ plateNumber: {
164
+ type: String,
165
+ required: false
166
+ },
167
+
168
+ qrCode: {
169
+ type: Boolean,
170
+ required: false
171
+ },
172
+ qrUniqueCode: { type: String, unique: false }
173
+ ,
174
+ disabled: {
175
+ type: Boolean,
176
+ required: false
177
+ }
178
+ },
179
+ ],
180
+ customerDocuments: [
181
+ {
182
+ documentName: {
183
+ type: String,
184
+ required: true
185
+ },
186
+ documentType: {
187
+ type: String,
188
+ required: true
189
+ },
190
+ document: {
191
+ type: String,
192
+ required: true
193
+ }
194
+ }
195
+ ]
196
+ });
197
+
198
+ const Customer = mongoose.model('Customer', CustomerSchema);
199
+
200
+ module.exports = Customer;
@@ -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,52 +1,130 @@
1
- const mongoose = require('mongoose');
2
-
3
- const dutyRosterSchema = new mongoose.Schema({
4
- facilityId: {
5
- type: mongoose.Schema.Types.ObjectId,
6
- ref: 'Facility',
7
- required: true,
8
- },
9
- name: {
10
- type: String,
11
- required: true,
12
- },
13
- phone: {
14
- type: String,
15
- required: true,
16
- },
17
- activity: {
18
- type: String,
19
- required: true,
20
- },
21
- startTime: {
22
- type: String,
23
- required: true
24
- },
25
- endTime: {
26
- type: String,
27
- required: true
28
- },
29
- approved: {
30
- type: Boolean,
31
- default: false
32
- },
33
- approvedBy: {
34
- type: mongoose.Schema.Types.ObjectId,
35
- ref: 'User'
36
- },
37
- schedule: [{
38
- date: {
39
- type: Date,
40
- required: true
41
- },
42
- status: {
43
- type: String,
44
- enum: ['pending', 'completed', 'missed', 'rescheduled'],
45
- default: 'pending'
46
- }
47
- }]
48
- }, {
49
- timestamps: true
50
- });
51
-
1
+ const mongoose = require('mongoose');
2
+
3
+ const dutyRosterSchema = new mongoose.Schema({
4
+ facilityId: {
5
+ type: mongoose.Schema.Types.ObjectId,
6
+ ref: 'Facility',
7
+ required: true,
8
+ },
9
+ staffDetails: {
10
+ name: {
11
+ type: String,
12
+ required: true,
13
+ },
14
+ phone: {
15
+ type: String,
16
+ required: true,
17
+ },
18
+ role: {
19
+ type: String,
20
+ required: true,
21
+ // Examples: 'Site Manager', 'GRE', 'Site support staff', 'Plumber', etc.
22
+ }
23
+ },
24
+
25
+ // Regular weekly schedule
26
+ weeklySchedule: {
27
+ monday: {
28
+ startTime: String,
29
+ endTime: String,
30
+ status: {
31
+ type: String,
32
+ enum: ['ON', 'OFF', 'AL', 'CL', 'ML/PL', 'PH', 'UI'],
33
+ default: 'ON'
34
+ }
35
+ },
36
+ tuesday: {
37
+ startTime: String,
38
+ endTime: String,
39
+ status: {
40
+ type: String,
41
+ enum: ['ON', 'OFF', 'AL', 'CL', 'ML/PL', 'PH', 'UI'],
42
+ default: 'ON'
43
+ }
44
+ },
45
+ wednesday: {
46
+ startTime: String,
47
+ endTime: String,
48
+ status: {
49
+ type: String,
50
+ enum: ['ON', 'OFF', 'AL', 'CL', 'ML/PL', 'PH', 'UI'],
51
+ default: 'ON'
52
+ }
53
+ },
54
+ thursday: {
55
+ startTime: String,
56
+ endTime: String,
57
+ status: {
58
+ type: String,
59
+ enum: ['ON', 'OFF', 'AL', 'CL', 'ML/PL', 'PH', 'UI'],
60
+ default: 'ON'
61
+ }
62
+ },
63
+ friday: {
64
+ startTime: String,
65
+ endTime: String,
66
+ status: {
67
+ type: String,
68
+ enum: ['ON', 'OFF', 'AL', 'CL', 'ML/PL', 'PH', 'UI'],
69
+ default: 'ON'
70
+ }
71
+ },
72
+ saturday: {
73
+ startTime: String,
74
+ endTime: String,
75
+ status: {
76
+ type: String,
77
+ enum: ['ON', 'OFF', 'AL', 'CL', 'ML/PL', 'PH', 'UI'],
78
+ default: 'ON'
79
+ }
80
+ },
81
+ sunday: {
82
+ startTime: String,
83
+ endTime: String,
84
+ status: {
85
+ type: String,
86
+ enum: ['ON', 'OFF', 'AL', 'CL', 'ML/PL', 'PH', 'UI'],
87
+ default: 'ON'
88
+ }
89
+ }
90
+ },
91
+
92
+ // For exceptions to the regular schedule
93
+ exceptions: [{
94
+ date: {
95
+ type: Date,
96
+ required: true
97
+ },
98
+ startTime: String,
99
+ endTime: String,
100
+ status: {
101
+ type: String,
102
+ enum: ['ON', 'OFF', 'AL', 'CL', 'ML/PL', 'PH', 'UI'],
103
+ required: true
104
+ },
105
+ reason: String
106
+ }],
107
+
108
+ // Metadata
109
+ metadata: {
110
+ period: {
111
+ startDate: Date,
112
+ endDate: Date
113
+ }
114
+ }
115
+ }, {
116
+ timestamps: true
117
+ });
118
+
119
+ // Status code definitions
120
+ dutyRosterSchema.statics.STATUS_CODES = {
121
+ ON: 'On Duty',
122
+ OFF: 'Off Duty',
123
+ AL: 'Annual Leave',
124
+ CL: 'Casual Leave',
125
+ 'ML/PL': 'Medical/Paternity Leave',
126
+ PH: 'Public Holiday',
127
+ UI: 'Unplanned Issues'
128
+ };
129
+
52
130
  module.exports = mongoose.model('DutyRoster', dutyRosterSchema);
@@ -1,25 +1,25 @@
1
- const mongoose = require('mongoose');
2
- const EmailSchema = mongoose.Schema({
3
- user: {
4
- type: String,
5
- required: true
6
- },
7
- from: {
8
- type: String,
9
- required: true
10
- },
11
- host: {
12
- type: String,
13
- required: true
14
- },
15
- port: {
16
- type: Number,
17
- required: true
18
- },
19
- auth: {
20
- user: String,
21
- pass: String
22
- }
23
- })
24
- const Email = mongoose.model('Email', EmailSchema);
1
+ const mongoose = require('mongoose');
2
+ const EmailSchema = mongoose.Schema({
3
+ user: {
4
+ type: String,
5
+ required: true
6
+ },
7
+ from: {
8
+ type: String,
9
+ required: true
10
+ },
11
+ host: {
12
+ type: String,
13
+ required: true
14
+ },
15
+ port: {
16
+ type: Number,
17
+ required: true
18
+ },
19
+ auth: {
20
+ user: String,
21
+ pass: String
22
+ }
23
+ })
24
+ const Email = mongoose.model('Email', EmailSchema);
25
25
  module.exports = Email