payservedb 5.6.3 → 5.6.5

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 (113) hide show
  1. package/.env +2 -2
  2. package/index.js +190 -191
  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/auditlog.js +83 -83
  11. package/src/models/bankdetails.js +40 -40
  12. package/src/models/booking_invoice.js +151 -151
  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 +91 -91
  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 +41 -41
  25. package/src/models/common_area_utility_alert.js +37 -37
  26. package/src/models/common_area_water.js +39 -39
  27. package/src/models/company.js +53 -53
  28. package/src/models/country_tax.js +42 -42
  29. package/src/models/currency_settings.js +39 -39
  30. package/src/models/customer.js +200 -200
  31. package/src/models/default_payment_details.js +17 -17
  32. package/src/models/dutyroster.js +107 -107
  33. package/src/models/email.js +37 -37
  34. package/src/models/entry_exit.js +53 -53
  35. package/src/models/expense.js +99 -99
  36. package/src/models/expense_category.js +19 -19
  37. package/src/models/facility.js +61 -61
  38. package/src/models/facility_payment_details.js +20 -20
  39. package/src/models/facilityasset.js +25 -25
  40. package/src/models/faq.js +18 -18
  41. package/src/models/gl_account_double_entries.js +25 -25
  42. package/src/models/gl_accounts.js +56 -56
  43. package/src/models/gl_entries.js +49 -49
  44. package/src/models/guard.js +47 -47
  45. package/src/models/handover.js +246 -246
  46. package/src/models/invoice.js +336 -336
  47. package/src/models/item_inspection.js +67 -67
  48. package/src/models/leaseagreement.js +221 -221
  49. package/src/models/leasetemplate.js +17 -17
  50. package/src/models/levy.js +152 -152
  51. package/src/models/levy_invoice_settings.js +26 -26
  52. package/src/models/levycontract.js +117 -117
  53. package/src/models/levytype.js +23 -23
  54. package/src/models/maintenance_service_vendor.js +38 -38
  55. package/src/models/maintenance_services.js +17 -17
  56. package/src/models/maintenancerequisition.js +31 -31
  57. package/src/models/message.js +38 -38
  58. package/src/models/module.js +21 -21
  59. package/src/models/notification.js +36 -24
  60. package/src/models/penalty.js +76 -76
  61. package/src/models/pendingCredentials.js +32 -32
  62. package/src/models/propertyManagerContract.js +358 -358
  63. package/src/models/propertyManagerRevenue.js +100 -100
  64. package/src/models/purchase_order.js +194 -194
  65. package/src/models/purchase_request.js +110 -110
  66. package/src/models/refresh_token.js +23 -23
  67. package/src/models/reminder.js +197 -197
  68. package/src/models/report.js +13 -13
  69. package/src/models/resident.js +121 -121
  70. package/src/models/rfq_details.js +131 -131
  71. package/src/models/rfq_response.js +105 -105
  72. package/src/models/service_charge_invoice_upload.js +42 -42
  73. package/src/models/service_charge_payments.js +27 -27
  74. package/src/models/servicerequest.js +55 -55
  75. package/src/models/settings.js +62 -62
  76. package/src/models/smart_meter_daily_consumption.js +44 -44
  77. package/src/models/sms_africastalking.js +20 -20
  78. package/src/models/sms_meliora.js +20 -20
  79. package/src/models/staff.js +36 -36
  80. package/src/models/stocksandspare.js +34 -34
  81. package/src/models/suppliers.js +74 -74
  82. package/src/models/tickets.js +109 -109
  83. package/src/models/unitManagementTemplate.js +44 -44
  84. package/src/models/unitasset.js +25 -25
  85. package/src/models/units.js +112 -112
  86. package/src/models/user.js +187 -187
  87. package/src/models/valueaddedservices.js +79 -79
  88. package/src/models/vas_invoices_upload.js +50 -50
  89. package/src/models/vas_payments.js +24 -24
  90. package/src/models/vasinvoice.js +192 -192
  91. package/src/models/vasvendor.js +57 -57
  92. package/src/models/visitLog.js +86 -86
  93. package/src/models/visitor.js +67 -67
  94. package/src/models/waitlist.js +45 -45
  95. package/src/models/water_invoice.js +193 -193
  96. package/src/models/water_meter_account.js +78 -78
  97. package/src/models/water_meter_billing.js +58 -58
  98. package/src/models/water_meter_communication.js +17 -17
  99. package/src/models/water_meter_communication_logs.js +30 -30
  100. package/src/models/water_meter_concentrator.js +59 -59
  101. package/src/models/water_meter_daily_history.js +32 -32
  102. package/src/models/water_meter_iot_cards.js +34 -34
  103. package/src/models/water_meter_manufacturer.js +35 -35
  104. package/src/models/water_meter_monthly_history.js +36 -36
  105. package/src/models/water_meter_settings.js +88 -88
  106. package/src/models/water_meter_single_day_history.js +34 -34
  107. package/src/models/water_meter_size.js +15 -15
  108. package/src/models/water_meters.js +117 -117
  109. package/src/models/water_meters_delivery.js +76 -76
  110. package/src/models/water_prepaid_credit.js +43 -43
  111. package/src/models/water_prepaid_debit.js +50 -50
  112. package/src/models/workorder.js +49 -49
  113. package/src/models/billerAddress.js +0 -117
@@ -1,193 +1,193 @@
1
- const mongoose = require('mongoose');
2
-
3
- // Define the schema for VasInvoices
4
- const vasInvoiceSchema = new mongoose.Schema({
5
- invoiceNumber: {
6
- type: String,
7
- required: true,
8
- unique: true,
9
- },
10
- accountNumber: {
11
- type: String,
12
- required: true,
13
- unique: true
14
- },
15
- facilityId: {
16
- type: mongoose.Schema.Types.ObjectId,
17
- required: true
18
- },
19
- serviceId: {
20
- type: mongoose.Schema.Types.ObjectId,
21
- required: true
22
- },
23
- customerId: {
24
- type: mongoose.Schema.Types.ObjectId,
25
- required: true
26
- },
27
- dueDate: {
28
- type: Date,
29
- required: true,
30
- },
31
- invoiceNote: {
32
- type: String,
33
- default: "Payment is due within 30 days",
34
- },
35
- status: {
36
- type: String,
37
- required: true,
38
- enum: ['Pending', 'Paid', 'Partially Paid', 'Cancelled', 'Overdue', 'Unpaid', 'Void'],
39
- default: 'Pending'
40
- },
41
- unit: {
42
- type: String,
43
- required: true
44
- },
45
- serviceName: {
46
- type: String,
47
- default: 'Service Fee'
48
- },
49
- amountPaid: {
50
- type: Number,
51
- default: 0
52
- },
53
- subTotal: {
54
- type: Number,
55
- required: true,
56
- },
57
- tax: {
58
- type: Number,
59
- default: 0
60
- },
61
- amount: {
62
- type: Number,
63
- required: true
64
- },
65
- currency: {
66
- id: {
67
- type: mongoose.Schema.Types.ObjectId
68
- },
69
- name: {
70
- type: String,
71
- default: 'Kenyan Shilling'
72
- },
73
- code: {
74
- type: String,
75
- default: 'KES'
76
- },
77
- symbol: {
78
- type: String,
79
- default: 'KSh'
80
- }
81
- },
82
- items: [{
83
- description: {
84
- type: String,
85
- required: true
86
- },
87
- quantity: {
88
- type: Number,
89
- default: 1
90
- },
91
- unitPrice: {
92
- type: Number,
93
- required: true
94
- }
95
- }],
96
- reconciliationHistory: [{
97
- date: {
98
- type: Date,
99
- default: Date.now
100
- },
101
- amount: {
102
- type: Number,
103
- required: true
104
- },
105
- type: {
106
- type: String,
107
- default: 'Manual'
108
- },
109
- paymentReference: String,
110
- paymentCompletion: {
111
- type: String,
112
- default: 'Completed'
113
- },
114
- sourceInvoice: String,
115
- destinationInvoice: String,
116
- notes: String,
117
- remainingBalance: Number
118
- }],
119
- customerInfo: {
120
- fullName: {
121
- type: String,
122
- default: 'Customer'
123
- }
124
- },
125
- paymentDetails: {
126
- paymentStatus: {
127
- type: String,
128
- enum: ['Pending', 'Completed', 'Failed', 'Partial'],
129
- default: 'Pending'
130
- },
131
- paymentMethod: String,
132
- paymentDate: Date,
133
- transactionId: String,
134
- mobilePayment: {
135
- type: Boolean,
136
- default: false
137
- }
138
- },
139
- overpay: {
140
- type: Number,
141
- default: 0
142
- },
143
- // GL Integration Fields
144
- invoiceGLEntryId: {
145
- type: mongoose.Schema.Types.ObjectId,
146
- ref: 'GLEntry'
147
- },
148
- taxGLEntryId: {
149
- type: mongoose.Schema.Types.ObjectId,
150
- ref: 'GLEntry'
151
- },
152
- glDoubleEntryId: {
153
- type: mongoose.Schema.Types.ObjectId,
154
- ref: 'GLAccountDoubleEntries'
155
- },
156
- // Tax GL details
157
- taxDetails: [{
158
- taxId: {
159
- type: mongoose.Schema.Types.ObjectId,
160
- ref: 'CountryTaxRate'
161
- },
162
- taxName: {
163
- type: String
164
- },
165
- taxRate: {
166
- type: Number
167
- },
168
- taxAmount: {
169
- type: Number
170
- },
171
- glEntryId: {
172
- type: mongoose.Schema.Types.ObjectId,
173
- ref: 'GLEntry'
174
- }
175
- }]
176
- }, {
177
- timestamps: true
178
- });
179
-
180
- // Add pre-save middleware to check if invoice is overdue
181
- vasInvoiceSchema.pre('save', function (next) {
182
- if (this.isModified('dueDate') || this.isNew) {
183
- const today = new Date();
184
- if (this.dueDate < today && this.status === 'Pending') {
185
- this.status = 'Overdue';
186
- }
187
- }
188
- next();
189
- });
190
-
191
- const VasInvoice = mongoose.model('VasInvoice', vasInvoiceSchema);
192
-
1
+ const mongoose = require('mongoose');
2
+
3
+ // Define the schema for VasInvoices
4
+ const vasInvoiceSchema = new mongoose.Schema({
5
+ invoiceNumber: {
6
+ type: String,
7
+ required: true,
8
+ unique: true,
9
+ },
10
+ accountNumber: {
11
+ type: String,
12
+ required: true,
13
+ unique: true
14
+ },
15
+ facilityId: {
16
+ type: mongoose.Schema.Types.ObjectId,
17
+ required: true
18
+ },
19
+ serviceId: {
20
+ type: mongoose.Schema.Types.ObjectId,
21
+ required: true
22
+ },
23
+ customerId: {
24
+ type: mongoose.Schema.Types.ObjectId,
25
+ required: true
26
+ },
27
+ dueDate: {
28
+ type: Date,
29
+ required: true,
30
+ },
31
+ invoiceNote: {
32
+ type: String,
33
+ default: "Payment is due within 30 days",
34
+ },
35
+ status: {
36
+ type: String,
37
+ required: true,
38
+ enum: ['Pending', 'Paid', 'Partially Paid', 'Cancelled', 'Overdue', 'Unpaid', 'Void'],
39
+ default: 'Pending'
40
+ },
41
+ unit: {
42
+ type: String,
43
+ required: true
44
+ },
45
+ serviceName: {
46
+ type: String,
47
+ default: 'Service Fee'
48
+ },
49
+ amountPaid: {
50
+ type: Number,
51
+ default: 0
52
+ },
53
+ subTotal: {
54
+ type: Number,
55
+ required: true,
56
+ },
57
+ tax: {
58
+ type: Number,
59
+ default: 0
60
+ },
61
+ amount: {
62
+ type: Number,
63
+ required: true
64
+ },
65
+ currency: {
66
+ id: {
67
+ type: mongoose.Schema.Types.ObjectId
68
+ },
69
+ name: {
70
+ type: String,
71
+ default: 'Kenyan Shilling'
72
+ },
73
+ code: {
74
+ type: String,
75
+ default: 'KES'
76
+ },
77
+ symbol: {
78
+ type: String,
79
+ default: 'KSh'
80
+ }
81
+ },
82
+ items: [{
83
+ description: {
84
+ type: String,
85
+ required: true
86
+ },
87
+ quantity: {
88
+ type: Number,
89
+ default: 1
90
+ },
91
+ unitPrice: {
92
+ type: Number,
93
+ required: true
94
+ }
95
+ }],
96
+ reconciliationHistory: [{
97
+ date: {
98
+ type: Date,
99
+ default: Date.now
100
+ },
101
+ amount: {
102
+ type: Number,
103
+ required: true
104
+ },
105
+ type: {
106
+ type: String,
107
+ default: 'Manual'
108
+ },
109
+ paymentReference: String,
110
+ paymentCompletion: {
111
+ type: String,
112
+ default: 'Completed'
113
+ },
114
+ sourceInvoice: String,
115
+ destinationInvoice: String,
116
+ notes: String,
117
+ remainingBalance: Number
118
+ }],
119
+ customerInfo: {
120
+ fullName: {
121
+ type: String,
122
+ default: 'Customer'
123
+ }
124
+ },
125
+ paymentDetails: {
126
+ paymentStatus: {
127
+ type: String,
128
+ enum: ['Pending', 'Completed', 'Failed', 'Partial'],
129
+ default: 'Pending'
130
+ },
131
+ paymentMethod: String,
132
+ paymentDate: Date,
133
+ transactionId: String,
134
+ mobilePayment: {
135
+ type: Boolean,
136
+ default: false
137
+ }
138
+ },
139
+ overpay: {
140
+ type: Number,
141
+ default: 0
142
+ },
143
+ // GL Integration Fields
144
+ invoiceGLEntryId: {
145
+ type: mongoose.Schema.Types.ObjectId,
146
+ ref: 'GLEntry'
147
+ },
148
+ taxGLEntryId: {
149
+ type: mongoose.Schema.Types.ObjectId,
150
+ ref: 'GLEntry'
151
+ },
152
+ glDoubleEntryId: {
153
+ type: mongoose.Schema.Types.ObjectId,
154
+ ref: 'GLAccountDoubleEntries'
155
+ },
156
+ // Tax GL details
157
+ taxDetails: [{
158
+ taxId: {
159
+ type: mongoose.Schema.Types.ObjectId,
160
+ ref: 'CountryTaxRate'
161
+ },
162
+ taxName: {
163
+ type: String
164
+ },
165
+ taxRate: {
166
+ type: Number
167
+ },
168
+ taxAmount: {
169
+ type: Number
170
+ },
171
+ glEntryId: {
172
+ type: mongoose.Schema.Types.ObjectId,
173
+ ref: 'GLEntry'
174
+ }
175
+ }]
176
+ }, {
177
+ timestamps: true
178
+ });
179
+
180
+ // Add pre-save middleware to check if invoice is overdue
181
+ vasInvoiceSchema.pre('save', function (next) {
182
+ if (this.isModified('dueDate') || this.isNew) {
183
+ const today = new Date();
184
+ if (this.dueDate < today && this.status === 'Pending') {
185
+ this.status = 'Overdue';
186
+ }
187
+ }
188
+ next();
189
+ });
190
+
191
+ const VasInvoice = mongoose.model('VasInvoice', vasInvoiceSchema);
192
+
193
193
  module.exports = VasInvoice;
@@ -1,58 +1,58 @@
1
- const mongoose = require('mongoose');
2
-
3
- // Define the schema for VasVendor
4
- const vasVendorSchema = new mongoose.Schema({
5
- facilityId: {
6
- type: mongoose.Schema.Types.ObjectId,
7
- ref: 'Facility',
8
- required: true,
9
- },
10
- name: {
11
- type: String,
12
- required: true,
13
- trim: true
14
- },
15
- location: {
16
- type: String,
17
- required: true,
18
- trim: true
19
- },
20
- jobDescription: {
21
- type: String,
22
- required: true,
23
- trim: true
24
- },
25
- offers: [{
26
- serviceId: {
27
- type: mongoose.Schema.Types.ObjectId,
28
- ref: 'Service', // Reference to the Service model
29
- required: true
30
- },
31
- amount: {
32
- type: Number,
33
- required: true,
34
- min: [0, 'Amount must be a positive number']
35
- }
36
- }],
37
- contactDetails: {
38
- name: {
39
- type: String,
40
- required: true
41
- },
42
- phone: {
43
- type: String,
44
- required: true
45
- },
46
- email: {
47
- type: String,
48
- required: true,
49
- match: [/.+\@.+\..+/, 'Please provide a valid email address']
50
- }
51
- }
52
- }, {
53
- timestamps: true // This will automatically add createdAt and updatedAt fields
54
- });
55
-
56
- const VasVendor = mongoose.model('VasVendor', vasVendorSchema);
57
-
1
+ const mongoose = require('mongoose');
2
+
3
+ // Define the schema for VasVendor
4
+ const vasVendorSchema = new mongoose.Schema({
5
+ facilityId: {
6
+ type: mongoose.Schema.Types.ObjectId,
7
+ ref: 'Facility',
8
+ required: true,
9
+ },
10
+ name: {
11
+ type: String,
12
+ required: true,
13
+ trim: true
14
+ },
15
+ location: {
16
+ type: String,
17
+ required: true,
18
+ trim: true
19
+ },
20
+ jobDescription: {
21
+ type: String,
22
+ required: true,
23
+ trim: true
24
+ },
25
+ offers: [{
26
+ serviceId: {
27
+ type: mongoose.Schema.Types.ObjectId,
28
+ ref: 'Service', // Reference to the Service model
29
+ required: true
30
+ },
31
+ amount: {
32
+ type: Number,
33
+ required: true,
34
+ min: [0, 'Amount must be a positive number']
35
+ }
36
+ }],
37
+ contactDetails: {
38
+ name: {
39
+ type: String,
40
+ required: true
41
+ },
42
+ phone: {
43
+ type: String,
44
+ required: true
45
+ },
46
+ email: {
47
+ type: String,
48
+ required: true,
49
+ match: [/.+\@.+\..+/, 'Please provide a valid email address']
50
+ }
51
+ }
52
+ }, {
53
+ timestamps: true // This will automatically add createdAt and updatedAt fields
54
+ });
55
+
56
+ const VasVendor = mongoose.model('VasVendor', vasVendorSchema);
57
+
58
58
  module.exports = VasVendor;
@@ -1,86 +1,86 @@
1
- const mongoose = require('mongoose');
2
-
3
- // Define the schema for visit logs
4
- const visitLogSchema = new mongoose.Schema({
5
- visitorName: {
6
- type: String,
7
- required: true
8
- },
9
- visitorId: {
10
- type: mongoose.Schema.Types.ObjectId,
11
- ref: 'Visitor',
12
- required: true
13
- },
14
- residentName: {
15
- type: String,
16
- required: false
17
- },
18
- residentId: {
19
- type: mongoose.Schema.Types.ObjectId,
20
- },
21
- qrCode:{
22
- type:Boolean,
23
- required:false
24
- },
25
- houseNumber: {
26
- type: String,
27
- required: false
28
- },
29
- startTime: {
30
- type: String, // Changed to Date for better handling of time
31
- required: true
32
- },
33
- endTime: {
34
- type: Date, // Changed to Date for better handling of time
35
- required: false
36
- },
37
- days:{
38
- type:Number,
39
- required:false
40
- },
41
- division:{
42
- type:String,
43
- required:false
44
- },
45
- entryPoint:{
46
- type:String,
47
- required:false
48
- },
49
- exitPoint:{
50
- type:String,
51
- required:false
52
- },
53
- status: {
54
- type: String,
55
- required: true,
56
- enum: ['Visit Confirmation', 'Scheduled', 'Checked In','Checked Out', 'Cancelled'] // Define valid statuses
57
- // Define valid statuses
58
- },
59
- vehicle: {
60
- registration: String,
61
- make: String,
62
- color: String,
63
- occupants: String,
64
- },
65
- visitationCode: {
66
- type: Number,
67
- required: false
68
- },
69
- requestedBy:{
70
- type:mongoose.Schema.Types.ObjectId,
71
- ref:"User",
72
- required:false
73
- },
74
- facilityId: {
75
- type: mongoose.Schema.Types.ObjectId,
76
- ref: 'Facility',
77
- required: true // Ensures a facilityId is always provided
78
- }
79
- }, {
80
- timestamps: true // Automatically add createdAt and updatedAt fields
81
- });
82
-
83
- // Compile the model from the schema
84
- const VisitLog = mongoose.model('VisitLog', visitLogSchema);
85
-
86
- module.exports = VisitLog;
1
+ const mongoose = require('mongoose');
2
+
3
+ // Define the schema for visit logs
4
+ const visitLogSchema = new mongoose.Schema({
5
+ visitorName: {
6
+ type: String,
7
+ required: true
8
+ },
9
+ visitorId: {
10
+ type: mongoose.Schema.Types.ObjectId,
11
+ ref: 'Visitor',
12
+ required: true
13
+ },
14
+ residentName: {
15
+ type: String,
16
+ required: false
17
+ },
18
+ residentId: {
19
+ type: mongoose.Schema.Types.ObjectId,
20
+ },
21
+ qrCode:{
22
+ type:Boolean,
23
+ required:false
24
+ },
25
+ houseNumber: {
26
+ type: String,
27
+ required: false
28
+ },
29
+ startTime: {
30
+ type: String, // Changed to Date for better handling of time
31
+ required: true
32
+ },
33
+ endTime: {
34
+ type: Date, // Changed to Date for better handling of time
35
+ required: false
36
+ },
37
+ days:{
38
+ type:Number,
39
+ required:false
40
+ },
41
+ division:{
42
+ type:String,
43
+ required:false
44
+ },
45
+ entryPoint:{
46
+ type:String,
47
+ required:false
48
+ },
49
+ exitPoint:{
50
+ type:String,
51
+ required:false
52
+ },
53
+ status: {
54
+ type: String,
55
+ required: true,
56
+ enum: ['Visit Confirmation', 'Scheduled', 'Checked In','Checked Out', 'Cancelled'] // Define valid statuses
57
+ // Define valid statuses
58
+ },
59
+ vehicle: {
60
+ registration: String,
61
+ make: String,
62
+ color: String,
63
+ occupants: String,
64
+ },
65
+ visitationCode: {
66
+ type: Number,
67
+ required: false
68
+ },
69
+ requestedBy:{
70
+ type:mongoose.Schema.Types.ObjectId,
71
+ ref:"User",
72
+ required:false
73
+ },
74
+ facilityId: {
75
+ type: mongoose.Schema.Types.ObjectId,
76
+ ref: 'Facility',
77
+ required: true // Ensures a facilityId is always provided
78
+ }
79
+ }, {
80
+ timestamps: true // Automatically add createdAt and updatedAt fields
81
+ });
82
+
83
+ // Compile the model from the schema
84
+ const VisitLog = mongoose.model('VisitLog', visitLogSchema);
85
+
86
+ module.exports = VisitLog;