payservedb 4.7.4 → 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,162 +1,162 @@
1
- const mongoose = require("mongoose");
2
- const moment = require("moment-timezone");
3
-
4
- const reminderSchema = new mongoose.Schema(
5
- {
6
- name: {
7
- type: String,
8
- required: true,
9
- trim: true,
10
- },
11
- type: {
12
- type: String,
13
- required: true,
14
- enum: ['standard', 'custom'],
15
- default: 'standard'
16
- },
17
- module: {
18
- type: String,
19
- required: true,
20
- enum: ['levy', 'lease', 'utility'],
21
- default: 'levy'
22
- },
23
- moduleId: {
24
- type: mongoose.Schema.Types.ObjectId,
25
- required: true,
26
- refPath: 'module'
27
- },
28
- remindOn: {
29
- invoiceDate: {
30
- type: Boolean,
31
- default: true,
32
- },
33
- dueDate: {
34
- type: Boolean,
35
- default: false,
36
- },
37
- afterOverdue: {
38
- enabled: {
39
- type: Boolean,
40
- default: false,
41
- },
42
- days: {
43
- type: [Number],
44
- validate: {
45
- validator: function (value) {
46
- if (!this.remindOn.afterOverdue.enabled) return true;
47
- return Array.isArray(value) &&
48
- value.length > 0 &&
49
- value.every(day => [1, 3, 7].includes(day));
50
- },
51
- message: 'When overdue reminders are enabled, days can only be 1, 3, or 7'
52
- }
53
- }
54
- }
55
- },
56
- time: {
57
- type: String,
58
- required: true,
59
- default: "09:00",
60
- validate: {
61
- validator: function (value) {
62
- return /^([0-1]?[0-9]|2[0-3]):[0-5][0-9]$/.test(value);
63
- },
64
- message: 'Time must be in HH:mm format'
65
- }
66
- },
67
- isActive: {
68
- type: Boolean,
69
- required: true,
70
- default: true,
71
- },
72
- processed: {
73
- type: Boolean,
74
- required: true,
75
- default: false,
76
- },
77
- lastProcessed: {
78
- type: Date,
79
- },
80
- notificationTypes: {
81
- type: [String],
82
- required: true,
83
- validate: {
84
- validator: function (value) {
85
- return value.length > 0 &&
86
- value.every(type => ['SMS', 'EMAIL'].includes(type.toUpperCase()));
87
- },
88
- message: 'At least one valid notification type is required'
89
- }
90
- },
91
- message: {
92
- type: String,
93
- maxLength: [500, 'Message cannot exceed 500 characters']
94
- },
95
- facilityId: {
96
- type: mongoose.Schema.Types.ObjectId,
97
- ref: "Facility",
98
- required: true,
99
- index: true
100
- },
101
- timezone: {
102
- type: String,
103
- required: true,
104
- default: 'UTC',
105
- validate: {
106
- validator: function (value) {
107
- return moment.tz.names().includes(value);
108
- },
109
- message: 'Invalid timezone'
110
- }
111
- }
112
- },
113
- {
114
- timestamps: true,
115
- indexes: [
116
- { facilityId: 1, isActive: 1 },
117
- { facilityId: 1, isActive: 1, 'remindOn.invoiceDate': 1 },
118
- { facilityId: 1, isActive: 1, 'remindOn.dueDate': 1 },
119
- { facilityId: 1, isActive: 1, 'remindOn.afterOverdue.enabled': 1 },
120
- { moduleId: 1, isActive: 1 },
121
- { facilityId: 1, lastProcessed: 1 }
122
- ]
123
- }
124
- );
125
-
126
- // Add methods to reminder schema
127
- reminderSchema.methods.shouldProcess = function (currentTime, invoice) {
128
- if (!this.isActive || !invoice) return false;
129
-
130
- const now = moment(currentTime);
131
- const invoiceDate = moment(invoice.createdAt);
132
- const dueDate = moment(invoice.dueDate);
133
- const today = moment().startOf('day');
134
-
135
- if (!this.isTimeToProcess(now)) return false;
136
-
137
- if (this.remindOn.invoiceDate && invoiceDate.isSame(today, 'day')) {
138
- return true;
139
- }
140
-
141
- if (this.remindOn.dueDate && dueDate.isSame(today, 'day')) {
142
- return true;
143
- }
144
-
145
- if (this.remindOn.afterOverdue.enabled && dueDate.isBefore(today, 'day')) {
146
- const daysOverdue = today.diff(dueDate, 'days');
147
- return this.remindOn.afterOverdue.days.includes(daysOverdue);
148
- }
149
-
150
- return false;
151
- };
152
-
153
- reminderSchema.methods.isTimeToProcess = function (currentTime) {
154
- const reminderMoment = moment(this.time, 'HH:mm');
155
- const currentMoment = moment(currentTime).format('HH:mm');
156
- const diffMinutes = moment(currentMoment, 'HH:mm').diff(reminderMoment, 'minutes');
157
- return Math.abs(diffMinutes) <= 5;
158
- };
159
-
160
- const Reminder = mongoose.model("Reminder", reminderSchema);
161
-
1
+ const mongoose = require("mongoose");
2
+ const moment = require("moment-timezone");
3
+
4
+ const reminderSchema = new mongoose.Schema(
5
+ {
6
+ name: {
7
+ type: String,
8
+ required: true,
9
+ trim: true,
10
+ },
11
+ type: {
12
+ type: String,
13
+ required: true,
14
+ enum: ['standard', 'custom'],
15
+ default: 'standard'
16
+ },
17
+ module: {
18
+ type: String,
19
+ required: true,
20
+ enum: ['levy', 'lease', 'utility'],
21
+ default: 'levy'
22
+ },
23
+ moduleId: {
24
+ type: mongoose.Schema.Types.ObjectId,
25
+ required: true,
26
+ refPath: 'module'
27
+ },
28
+ remindOn: {
29
+ invoiceDate: {
30
+ type: Boolean,
31
+ default: true,
32
+ },
33
+ dueDate: {
34
+ type: Boolean,
35
+ default: false,
36
+ },
37
+ afterOverdue: {
38
+ enabled: {
39
+ type: Boolean,
40
+ default: false,
41
+ },
42
+ days: {
43
+ type: [Number],
44
+ validate: {
45
+ validator: function (value) {
46
+ if (!this.remindOn.afterOverdue.enabled) return true;
47
+ return Array.isArray(value) &&
48
+ value.length > 0 &&
49
+ value.every(day => [1, 3, 7].includes(day));
50
+ },
51
+ message: 'When overdue reminders are enabled, days can only be 1, 3, or 7'
52
+ }
53
+ }
54
+ }
55
+ },
56
+ time: {
57
+ type: String,
58
+ required: true,
59
+ default: "09:00",
60
+ validate: {
61
+ validator: function (value) {
62
+ return /^([0-1]?[0-9]|2[0-3]):[0-5][0-9]$/.test(value);
63
+ },
64
+ message: 'Time must be in HH:mm format'
65
+ }
66
+ },
67
+ isActive: {
68
+ type: Boolean,
69
+ required: true,
70
+ default: true,
71
+ },
72
+ processed: {
73
+ type: Boolean,
74
+ required: true,
75
+ default: false,
76
+ },
77
+ lastProcessed: {
78
+ type: Date,
79
+ },
80
+ notificationTypes: {
81
+ type: [String],
82
+ required: true,
83
+ validate: {
84
+ validator: function (value) {
85
+ return value.length > 0 &&
86
+ value.every(type => ['SMS', 'EMAIL'].includes(type.toUpperCase()));
87
+ },
88
+ message: 'At least one valid notification type is required'
89
+ }
90
+ },
91
+ message: {
92
+ type: String,
93
+ maxLength: [500, 'Message cannot exceed 500 characters']
94
+ },
95
+ facilityId: {
96
+ type: mongoose.Schema.Types.ObjectId,
97
+ ref: "Facility",
98
+ required: true,
99
+ index: true
100
+ },
101
+ timezone: {
102
+ type: String,
103
+ required: true,
104
+ default: 'UTC',
105
+ validate: {
106
+ validator: function (value) {
107
+ return moment.tz.names().includes(value);
108
+ },
109
+ message: 'Invalid timezone'
110
+ }
111
+ }
112
+ },
113
+ {
114
+ timestamps: true,
115
+ indexes: [
116
+ { facilityId: 1, isActive: 1 },
117
+ { facilityId: 1, isActive: 1, 'remindOn.invoiceDate': 1 },
118
+ { facilityId: 1, isActive: 1, 'remindOn.dueDate': 1 },
119
+ { facilityId: 1, isActive: 1, 'remindOn.afterOverdue.enabled': 1 },
120
+ { moduleId: 1, isActive: 1 },
121
+ { facilityId: 1, lastProcessed: 1 }
122
+ ]
123
+ }
124
+ );
125
+
126
+ // Add methods to reminder schema
127
+ reminderSchema.methods.shouldProcess = function (currentTime, invoice) {
128
+ if (!this.isActive || !invoice) return false;
129
+
130
+ const now = moment(currentTime);
131
+ const invoiceDate = moment(invoice.createdAt);
132
+ const dueDate = moment(invoice.dueDate);
133
+ const today = moment().startOf('day');
134
+
135
+ if (!this.isTimeToProcess(now)) return false;
136
+
137
+ if (this.remindOn.invoiceDate && invoiceDate.isSame(today, 'day')) {
138
+ return true;
139
+ }
140
+
141
+ if (this.remindOn.dueDate && dueDate.isSame(today, 'day')) {
142
+ return true;
143
+ }
144
+
145
+ if (this.remindOn.afterOverdue.enabled && dueDate.isBefore(today, 'day')) {
146
+ const daysOverdue = today.diff(dueDate, 'days');
147
+ return this.remindOn.afterOverdue.days.includes(daysOverdue);
148
+ }
149
+
150
+ return false;
151
+ };
152
+
153
+ reminderSchema.methods.isTimeToProcess = function (currentTime) {
154
+ const reminderMoment = moment(this.time, 'HH:mm');
155
+ const currentMoment = moment(currentTime).format('HH:mm');
156
+ const diffMinutes = moment(currentMoment, 'HH:mm').diff(reminderMoment, 'minutes');
157
+ return Math.abs(diffMinutes) <= 5;
158
+ };
159
+
160
+ const Reminder = mongoose.model("Reminder", reminderSchema);
161
+
162
162
  module.exports = Reminder;
@@ -1,14 +1,14 @@
1
- const mongoose = require("mongoose");
2
-
3
- const ReportSchema = new mongoose.Schema({
4
- type: {
5
- type: String,
6
- enum: ['revenue', 'leasePerformance', 'expiredLeases'],
7
- required: true
8
- },
9
- data: { type: mongoose.Schema.Types.Mixed, required: true },
10
- generatedAt: { type: Date, default: Date.now },
11
- });
12
-
13
- module.exports = mongoose.model('Report', ReportSchema);
1
+ const mongoose = require("mongoose");
2
+
3
+ const ReportSchema = new mongoose.Schema({
4
+ type: {
5
+ type: String,
6
+ enum: ['revenue', 'leasePerformance', 'expiredLeases'],
7
+ required: true
8
+ },
9
+ data: { type: mongoose.Schema.Types.Mixed, required: true },
10
+ generatedAt: { type: Date, default: Date.now },
11
+ });
12
+
13
+ module.exports = mongoose.model('Report', ReportSchema);
14
14
 
@@ -1,121 +1,121 @@
1
- const mongoose = require('mongoose');
2
-
3
- // Define the schema for Resident
4
- const residentSchema = new mongoose.Schema({
5
- residentId: {
6
- type: String,
7
- required: true,
8
- unique: true
9
- },
10
- name: {
11
- type: String,
12
- required: true
13
- },
14
- email: {
15
- type: String,
16
- required: true
17
- },
18
- phone: {
19
- type: String,
20
- required: true
21
- },
22
- nationalId: {
23
- type: String,
24
- required: true
25
- },
26
- unitId: {
27
- type: mongoose.Schema.Types.ObjectId,
28
- ref: 'Unit',
29
- required: true
30
- },
31
- unitName: {
32
- type: String,
33
- required: true
34
- },
35
- facilityId: {
36
- type: mongoose.Schema.Types.ObjectId,
37
- ref: 'Facility',
38
- required: true
39
- },
40
- contracts: [{
41
- type: mongoose.Schema.Types.ObjectId,
42
- ref: 'LevyContract'
43
- }],
44
- levies: [{
45
- type: mongoose.Schema.Types.ObjectId,
46
- ref: 'Levy'
47
- }],
48
- invoices: [{
49
- type: mongoose.Schema.Types.ObjectId,
50
- ref: 'Invoice'
51
- }],
52
- paymentHistory: [{
53
- paymentDate: {
54
- type: Date,
55
- required: true
56
- },
57
- amount: {
58
- type: Number,
59
- required: true
60
- },
61
- paymentMethod: {
62
- type: String
63
- },
64
- transactionId: {
65
- type: String
66
- }
67
- }],
68
- status: {
69
- type: String,
70
- enum: ['Active', 'Inactive'],
71
- default: 'Active'
72
- },
73
- registrationDate: {
74
- type: Date,
75
- default: Date.now
76
- },
77
- paymentFrequency: {
78
- type: String,
79
- enum: ['Monthly', 'Quarterly', 'Annually']
80
- },
81
- notificationPreferences: {
82
- email: {
83
- type: Boolean,
84
- default: true
85
- },
86
- sms: {
87
- type: Boolean,
88
- default: true
89
- },
90
- push: {
91
- type: Boolean,
92
- default: true
93
- }
94
- },
95
- reminders: [{
96
- type: mongoose.Schema.Types.ObjectId,
97
- ref: 'Reminder'
98
- }],
99
- notifications: [{
100
- type: mongoose.Schema.Types.ObjectId,
101
- ref: 'Notification'
102
- }],
103
- penalties: [{
104
- type: mongoose.Schema.Types.ObjectId,
105
- ref: 'Penalty'
106
- }],
107
- penaltyStatus: {
108
- type: String,
109
- enum: ['Pending', 'Paid', 'Waived'],
110
- default: 'Pending'
111
- },
112
- notes: {
113
- type: String
114
- }
115
- }, {
116
- timestamps: true
117
- });
118
-
119
- const Resident = mongoose.model('Resident', residentSchema);
120
-
121
- module.exports = Resident;
1
+ const mongoose = require('mongoose');
2
+
3
+ // Define the schema for Resident
4
+ const residentSchema = new mongoose.Schema({
5
+ residentId: {
6
+ type: String,
7
+ required: true,
8
+ unique: true
9
+ },
10
+ name: {
11
+ type: String,
12
+ required: true
13
+ },
14
+ email: {
15
+ type: String,
16
+ required: true
17
+ },
18
+ phone: {
19
+ type: String,
20
+ required: true
21
+ },
22
+ nationalId: {
23
+ type: String,
24
+ required: true
25
+ },
26
+ unitId: {
27
+ type: mongoose.Schema.Types.ObjectId,
28
+ ref: 'Unit',
29
+ required: true
30
+ },
31
+ unitName: {
32
+ type: String,
33
+ required: true
34
+ },
35
+ facilityId: {
36
+ type: mongoose.Schema.Types.ObjectId,
37
+ ref: 'Facility',
38
+ required: true
39
+ },
40
+ contracts: [{
41
+ type: mongoose.Schema.Types.ObjectId,
42
+ ref: 'LevyContract'
43
+ }],
44
+ levies: [{
45
+ type: mongoose.Schema.Types.ObjectId,
46
+ ref: 'Levy'
47
+ }],
48
+ invoices: [{
49
+ type: mongoose.Schema.Types.ObjectId,
50
+ ref: 'Invoice'
51
+ }],
52
+ paymentHistory: [{
53
+ paymentDate: {
54
+ type: Date,
55
+ required: true
56
+ },
57
+ amount: {
58
+ type: Number,
59
+ required: true
60
+ },
61
+ paymentMethod: {
62
+ type: String
63
+ },
64
+ transactionId: {
65
+ type: String
66
+ }
67
+ }],
68
+ status: {
69
+ type: String,
70
+ enum: ['Active', 'Inactive'],
71
+ default: 'Active'
72
+ },
73
+ registrationDate: {
74
+ type: Date,
75
+ default: Date.now
76
+ },
77
+ paymentFrequency: {
78
+ type: String,
79
+ enum: ['Monthly', 'Quarterly', 'Annually']
80
+ },
81
+ notificationPreferences: {
82
+ email: {
83
+ type: Boolean,
84
+ default: true
85
+ },
86
+ sms: {
87
+ type: Boolean,
88
+ default: true
89
+ },
90
+ push: {
91
+ type: Boolean,
92
+ default: true
93
+ }
94
+ },
95
+ reminders: [{
96
+ type: mongoose.Schema.Types.ObjectId,
97
+ ref: 'Reminder'
98
+ }],
99
+ notifications: [{
100
+ type: mongoose.Schema.Types.ObjectId,
101
+ ref: 'Notification'
102
+ }],
103
+ penalties: [{
104
+ type: mongoose.Schema.Types.ObjectId,
105
+ ref: 'Penalty'
106
+ }],
107
+ penaltyStatus: {
108
+ type: String,
109
+ enum: ['Pending', 'Paid', 'Waived'],
110
+ default: 'Pending'
111
+ },
112
+ notes: {
113
+ type: String
114
+ }
115
+ }, {
116
+ timestamps: true
117
+ });
118
+
119
+ const Resident = mongoose.model('Resident', residentSchema);
120
+
121
+ module.exports = Resident;
@@ -1,43 +1,43 @@
1
- const mongoose = require("mongoose")
2
-
3
- const ServiceChargeInvoiceUploadSchema = new mongoose.Schema({
4
- facilityId: {
5
- type: mongoose.Schema.Types.ObjectId,
6
- ref: 'Facility',
7
- required: true,
8
- },
9
- customerId: {
10
- type: String,
11
- required: true,
12
- },
13
- item: {
14
- type: String,
15
- required: true,
16
- },
17
- description: {
18
- type: String,
19
- required: true,
20
- },
21
- quantity: {
22
- type: Number,
23
- required: true,
24
- },
25
- rate: {
26
- type: Number,
27
- required: true,
28
- },
29
- vat: {
30
- type: Number,
31
- required: true,
32
- },
33
- account: {
34
- type: String,
35
- required: true,
36
- }
37
- })
38
-
39
- const ServiceChargeInvoiceUpload = mongoose.model(
40
- "ServiceChargeInvoiceUpload",
41
- ServiceChargeInvoiceUploadSchema
42
- )
1
+ const mongoose = require("mongoose")
2
+
3
+ const ServiceChargeInvoiceUploadSchema = new mongoose.Schema({
4
+ facilityId: {
5
+ type: mongoose.Schema.Types.ObjectId,
6
+ ref: 'Facility',
7
+ required: true,
8
+ },
9
+ customerId: {
10
+ type: String,
11
+ required: true,
12
+ },
13
+ item: {
14
+ type: String,
15
+ required: true,
16
+ },
17
+ description: {
18
+ type: String,
19
+ required: true,
20
+ },
21
+ quantity: {
22
+ type: Number,
23
+ required: true,
24
+ },
25
+ rate: {
26
+ type: Number,
27
+ required: true,
28
+ },
29
+ vat: {
30
+ type: Number,
31
+ required: true,
32
+ },
33
+ account: {
34
+ type: String,
35
+ required: true,
36
+ }
37
+ })
38
+
39
+ const ServiceChargeInvoiceUpload = mongoose.model(
40
+ "ServiceChargeInvoiceUpload",
41
+ ServiceChargeInvoiceUploadSchema
42
+ )
43
43
  module.exports = ServiceChargeInvoiceUpload