payservedb 6.8.3 → 6.8.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 (148) hide show
  1. package/.env +2 -2
  2. package/index.js +284 -284
  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/asset.js +92 -92
  9. package/src/models/assetsAssignment.js +64 -64
  10. package/src/models/auditTrail.js +346 -346
  11. package/src/models/bankdetails.js +40 -40
  12. package/src/models/billerAddress.js +119 -119
  13. package/src/models/booking_invoice.js +151 -151
  14. package/src/models/bookinganalytics.js +63 -63
  15. package/src/models/bookingconfig.js +45 -45
  16. package/src/models/bookingproperty.js +122 -122
  17. package/src/models/bookingreservation.js +192 -192
  18. package/src/models/bookingrevenuerecord.js +84 -84
  19. package/src/models/budget.js +95 -95
  20. package/src/models/budgetCategory.js +19 -19
  21. package/src/models/campaigns.js +94 -94
  22. package/src/models/cashpayment.js +264 -264
  23. package/src/models/combinedUnits.js +62 -62
  24. package/src/models/common_area_electricity.js +38 -38
  25. package/src/models/common_area_generator.js +41 -41
  26. package/src/models/common_area_utility_alert.js +37 -37
  27. package/src/models/common_area_water.js +39 -39
  28. package/src/models/communication_status.js +33 -33
  29. package/src/models/company.js +53 -53
  30. package/src/models/coreBaseSettings.js +16 -16
  31. package/src/models/coreInvoiceSettings.js +100 -100
  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 +312 -312
  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 +62 -62
  46. package/src/models/facilityContractPricing.js +46 -46
  47. package/src/models/facilityInvoice.js +222 -222
  48. package/src/models/facilityInvoiceContract.js +249 -165
  49. package/src/models/facilityWalletTransactionsMetadata.js +236 -236
  50. package/src/models/facility_departements.js +20 -20
  51. package/src/models/facility_payment_details.js +20 -20
  52. package/src/models/facilityasset.js +25 -25
  53. package/src/models/faq.js +18 -18
  54. package/src/models/gl_account_double_entries.js +25 -25
  55. package/src/models/gl_accounts.js +56 -56
  56. package/src/models/gl_entries.js +49 -49
  57. package/src/models/goodsReceivedNotes.js +115 -115
  58. package/src/models/guard.js +47 -47
  59. package/src/models/handover.js +246 -246
  60. package/src/models/invoice.js +336 -336
  61. package/src/models/item_inspection.js +67 -67
  62. package/src/models/leaseagreement.js +226 -226
  63. package/src/models/leasetemplate.js +17 -17
  64. package/src/models/levy.js +206 -206
  65. package/src/models/levy_invoice_settings.js +26 -26
  66. package/src/models/levycontract.js +168 -168
  67. package/src/models/levytype.js +23 -23
  68. package/src/models/maintenance_service_vendor.js +38 -38
  69. package/src/models/maintenance_services.js +17 -17
  70. package/src/models/maintenancerequisition.js +31 -31
  71. package/src/models/master_workplan.js +32 -32
  72. package/src/models/master_workplan_child.js +34 -34
  73. package/src/models/message.js +38 -38
  74. package/src/models/module.js +21 -21
  75. package/src/models/notification.js +44 -44
  76. package/src/models/paymentTermsMarks.js +19 -19
  77. package/src/models/penalty.js +76 -76
  78. package/src/models/pendingCredentials.js +32 -32
  79. package/src/models/powerMeterCommunicationProtocol.js +17 -17
  80. package/src/models/powerMeterCustomerAccount.js +78 -78
  81. package/src/models/powerMeterCustomerBand.js +14 -14
  82. package/src/models/powerMeterDailyReading.js +30 -30
  83. package/src/models/powerMeterGateways.js +37 -37
  84. package/src/models/powerMeterMonthlyReading.js +34 -34
  85. package/src/models/powerMeterPowerCharges.js +53 -53
  86. package/src/models/powerMeterSettings.js +138 -138
  87. package/src/models/powerMeterSingleDayReading.js +32 -32
  88. package/src/models/powerMeters.js +104 -104
  89. package/src/models/powerMetersManufacturer.js +14 -14
  90. package/src/models/power_meter_account.js +81 -81
  91. package/src/models/power_meter_command_logs.js +30 -30
  92. package/src/models/propertyManagerContract.js +556 -556
  93. package/src/models/propertyManagerRevenue.js +195 -195
  94. package/src/models/purchaseOrderInvoice.js +74 -74
  95. package/src/models/purchase_order.js +213 -213
  96. package/src/models/purchase_request.js +110 -110
  97. package/src/models/refresh_token.js +23 -23
  98. package/src/models/reminder.js +197 -197
  99. package/src/models/report.js +13 -13
  100. package/src/models/resident.js +121 -121
  101. package/src/models/rfq_details.js +131 -131
  102. package/src/models/rfq_response.js +153 -153
  103. package/src/models/service_charge_invoice_upload.js +42 -42
  104. package/src/models/service_charge_payments.js +27 -27
  105. package/src/models/servicerequest.js +55 -55
  106. package/src/models/settings.js +62 -62
  107. package/src/models/smart_meter_daily_consumption.js +44 -44
  108. package/src/models/sms_africastalking.js +20 -20
  109. package/src/models/sms_balance_notification.js +26 -26
  110. package/src/models/sms_meliora.js +20 -20
  111. package/src/models/staff.js +36 -36
  112. package/src/models/stocksandspare.js +161 -161
  113. package/src/models/suppliers.js +74 -74
  114. package/src/models/tickets.js +121 -121
  115. package/src/models/unitManagementTemplate.js +44 -44
  116. package/src/models/unitasset.js +25 -25
  117. package/src/models/units.js +117 -117
  118. package/src/models/user.js +186 -186
  119. package/src/models/valueaddedservices.js +79 -79
  120. package/src/models/vas_invoices_upload.js +50 -50
  121. package/src/models/vas_payments.js +24 -24
  122. package/src/models/vasinvoice.js +192 -192
  123. package/src/models/vasvendor.js +57 -57
  124. package/src/models/visitLog.js +95 -95
  125. package/src/models/visitor.js +67 -67
  126. package/src/models/waitlist.js +45 -45
  127. package/src/models/wallet.js +44 -44
  128. package/src/models/wallet_transactions.js +50 -50
  129. package/src/models/water_invoice.js +305 -305
  130. package/src/models/water_meter_Command_Queue.js +33 -33
  131. package/src/models/water_meter_account.js +82 -82
  132. package/src/models/water_meter_billing.js +58 -58
  133. package/src/models/water_meter_communication.js +17 -17
  134. package/src/models/water_meter_communication_logs.js +30 -30
  135. package/src/models/water_meter_concentrator.js +66 -66
  136. package/src/models/water_meter_daily_history.js +32 -32
  137. package/src/models/water_meter_iot_cards.js +34 -34
  138. package/src/models/water_meter_manufacturer.js +35 -35
  139. package/src/models/water_meter_monthly_history.js +36 -36
  140. package/src/models/water_meter_negative_amounts.js +38 -38
  141. package/src/models/water_meter_settings.js +227 -227
  142. package/src/models/water_meter_single_day_history.js +34 -34
  143. package/src/models/water_meter_size.js +15 -15
  144. package/src/models/water_meters.js +134 -134
  145. package/src/models/water_meters_delivery.js +76 -76
  146. package/src/models/water_prepaid_credit.js +47 -47
  147. package/src/models/water_prepaid_debit.js +50 -50
  148. package/src/models/workorder.js +49 -49
@@ -1,165 +1,249 @@
1
- const mongoose = require("mongoose");
2
-
3
- const facilityInvoiceContractSchema = new mongoose.Schema({
4
- facility: {
5
- type: mongoose.Schema.Types.ObjectId,
6
- ref: "Facility",
7
- required: true,
8
- },
9
- pricing: {
10
- type: mongoose.Schema.Types.ObjectId,
11
- ref: "FacilityContractPricing",
12
- required: true,
13
- },
14
- name: {
15
- type: String,
16
- required: true,
17
- trim: true,
18
- },
19
- phone: {
20
- type: String,
21
- required: true,
22
- trim: true,
23
- },
24
- email: {
25
- type: String,
26
- required: true,
27
- trim: true,
28
- lowercase: true,
29
- match: [/^\S+@\S+\.\S+$/, "Please enter a valid email address"],
30
- },
31
- paymentInterval: {
32
- type: String,
33
- enum: ["monthly", "quarterly", "yearly"],
34
- default: "monthly",
35
- },
36
- paymentType: {
37
- type: String,
38
- enum: ["prepaid", "postpaid", "cash"],
39
- default: "cash",
40
- },
41
- invoiceDueAfterDays: {
42
- type: Number,
43
- required: true,
44
- min: [0, "Invoice due days cannot be negative"],
45
- },
46
- overdueAfterDays: {
47
- type: Number,
48
- required: true,
49
- min: [0, "Overdue days cannot be negative"],
50
- default: 7,
51
- },
52
- prorate: {
53
- type: Boolean,
54
- default: false,
55
- },
56
- items: [
57
- {
58
- itemType: {
59
- type: String,
60
- required: true,
61
- enum: [
62
- "unit",
63
- "license",
64
- "powerMeters",
65
- "hotWaterMeters",
66
- "coldWaterMeters",
67
- ],
68
- trim: true,
69
- },
70
- name: {
71
- type: String,
72
- required: true,
73
- trim: true,
74
- },
75
- description: {
76
- type: String,
77
- required: true,
78
- trim: true,
79
- },
80
- price: {
81
- type: Number,
82
- required: true,
83
- min: [0, "Price cannot be negative"],
84
- },
85
- quantity: {
86
- type: Number,
87
- required: true,
88
- min: [1, "Quantity must be at least 1"],
89
- },
90
- },
91
- ],
92
- reminders: [
93
- {
94
- frequency: {
95
- type: String,
96
- required: true,
97
- enum: ["daily", "custom"],
98
- default: "daily",
99
- },
100
- customDays: {
101
- type: Number,
102
- required: function () {
103
- return this.frequency === "custom";
104
- },
105
- min: [1, "Custom days must be at least 1"],
106
- default: null,
107
- },
108
- startDate: {
109
- type: Date,
110
- required: true,
111
- },
112
- status: {
113
- type: String,
114
- enum: ["sent", "pending"],
115
- default: "pending",
116
- },
117
- },
118
- ],
119
- dates: {
120
- startDate: {
121
- type: Date,
122
- required: true,
123
- },
124
- endDate: {
125
- type: Date,
126
- required: true,
127
- },
128
- invoiceGeneratedDate: {
129
- type: Date,
130
- required: true,
131
- },
132
- invoiceDueDate: {
133
- type: Date,
134
- required: true,
135
- },
136
- },
137
- signedContractDocument: {
138
- type: String,
139
- required: true,
140
- },
141
- status: {
142
- type: String,
143
- enum: ["pending", "signed", "rejected"],
144
- default: "pending",
145
- },
146
- active: {
147
- type: Boolean,
148
- default: true,
149
- },
150
- createdAt: {
151
- type: Date,
152
- default: Date.now,
153
- },
154
- updatedAt: {
155
- type: Date,
156
- default: Date.now,
157
- },
158
- });
159
-
160
- const FacilityInvoiceContract = mongoose.model(
161
- "FacilityInvoiceContract",
162
- facilityInvoiceContractSchema,
163
- );
164
-
165
- module.exports = FacilityInvoiceContract;
1
+ const mongoose = require("mongoose");
2
+
3
+ const facilityInvoiceContractSchema = new mongoose.Schema({
4
+ facility: {
5
+ type: mongoose.Schema.Types.ObjectId,
6
+ ref: "Facility",
7
+ required: true,
8
+ },
9
+ pricing: {
10
+ type: mongoose.Schema.Types.ObjectId,
11
+ ref: "FacilityContractPricing",
12
+ required: true,
13
+ },
14
+ name: {
15
+ type: String,
16
+ required: true,
17
+ trim: true,
18
+ },
19
+ phone: {
20
+ type: String,
21
+ required: true,
22
+ trim: true,
23
+ },
24
+ email: {
25
+ type: String,
26
+ required: true,
27
+ trim: true,
28
+ lowercase: true,
29
+ match: [/^\S+@\S+\.\S+$/, "Please enter a valid email address"],
30
+ },
31
+ paymentInterval: {
32
+ type: String,
33
+ enum: ["monthly", "quarterly", "yearly"],
34
+ default: "monthly",
35
+ },
36
+ paymentType: {
37
+ type: String,
38
+ enum: ["prepaid", "postpaid", "cash"],
39
+ default: "cash",
40
+ },
41
+ invoiceDueAfterDays: {
42
+ type: Number,
43
+ required: true,
44
+ min: [0, "Invoice due days cannot be negative"],
45
+ },
46
+ overdueAfterDays: {
47
+ type: Number,
48
+ required: true,
49
+ min: [0, "Overdue days cannot be negative"],
50
+ default: 7,
51
+ },
52
+ prorate: {
53
+ type: Boolean,
54
+ default: false,
55
+ },
56
+ items: [
57
+ {
58
+ itemType: {
59
+ type: String,
60
+ required: true,
61
+ enum: [
62
+ "unit",
63
+ "license",
64
+ "powerMeters",
65
+ "hotWaterMeters",
66
+ "coldWaterMeters",
67
+ ],
68
+ trim: true,
69
+ },
70
+ name: {
71
+ type: String,
72
+ required: true,
73
+ trim: true,
74
+ },
75
+ description: {
76
+ type: String,
77
+ required: true,
78
+ trim: true,
79
+ },
80
+ price: {
81
+ type: Number,
82
+ required: true,
83
+ min: [0, "Price cannot be negative"],
84
+ },
85
+ quantity: {
86
+ type: Number,
87
+ required: true,
88
+ min: [1, "Quantity must be at least 1"],
89
+ },
90
+ },
91
+ ],
92
+ reminders: [
93
+ {
94
+ frequency: {
95
+ type: String,
96
+ required: true,
97
+ enum: ["daily", "custom"],
98
+ default: "daily",
99
+ },
100
+ customDays: {
101
+ type: Number,
102
+ required: function () {
103
+ return this.frequency === "custom";
104
+ },
105
+ min: [1, "Custom days must be at least 1"],
106
+ default: null,
107
+ },
108
+ startDate: {
109
+ type: Date,
110
+ required: true,
111
+ },
112
+ status: {
113
+ type: String,
114
+ enum: ["sent", "pending"],
115
+ default: "pending",
116
+ },
117
+ },
118
+ ],
119
+ dates: {
120
+ startDate: {
121
+ type: Date,
122
+ required: true,
123
+ },
124
+ endDate: {
125
+ type: Date,
126
+ required: true,
127
+ },
128
+ invoiceGeneratedDate: {
129
+ type: Date,
130
+ required: true,
131
+ },
132
+ invoiceDueDate: {
133
+ type: Date,
134
+ required: true,
135
+ },
136
+ },
137
+ signedContractDocument: {
138
+ type: String,
139
+ required: true,
140
+ },
141
+ status: {
142
+ type: String,
143
+ enum: ["pending", "signed", "rejected"],
144
+ default: "pending",
145
+ },
146
+ active: {
147
+ type: Boolean,
148
+ default: true,
149
+ },
150
+ header: {
151
+ companyName: {
152
+ type: String,
153
+ required: true,
154
+ trim: true,
155
+ },
156
+ companyAddress: {
157
+ type: String,
158
+ required: true,
159
+ trim: true,
160
+ },
161
+ companyPhone: {
162
+ type: String,
163
+ trim: true,
164
+ },
165
+ companyEmail: {
166
+ type: String,
167
+ trim: true,
168
+ lowercase: true,
169
+ match: [/^\S+@\S+\.\S+$/, "Please enter a valid email address"],
170
+ },
171
+ companyWebsite: {
172
+ type: String,
173
+ trim: true,
174
+ match: [/^https?:\/\/[^\s$.?#].[^\s]*$/, "Please enter a valid URL"],
175
+ },
176
+ taxNumber: {
177
+ type: String,
178
+ trim: true,
179
+ },
180
+ logo: {
181
+ type: String,
182
+ default: null,
183
+ },
184
+ },
185
+ footer: {
186
+ bankName: {
187
+ type: String,
188
+ trim: true,
189
+ },
190
+ accountName: {
191
+ type: String,
192
+ trim: true,
193
+ },
194
+ accountNumber: {
195
+ type: String,
196
+ trim: true,
197
+ },
198
+ swiftCode: {
199
+ type: String,
200
+ trim: true,
201
+ },
202
+ paymentTerms: {
203
+ type: String,
204
+ trim: true,
205
+ default: "Net 30 days",
206
+ },
207
+ latePaymentFee: {
208
+ type: String,
209
+ trim: true,
210
+ },
211
+ taxRate: {
212
+ type: String,
213
+ trim: true,
214
+ },
215
+ additionalNotes: {
216
+ type: String,
217
+ trim: true,
218
+ },
219
+ supportEmail: {
220
+ type: String,
221
+ trim: true,
222
+ lowercase: true,
223
+ match: [/^\S+@\S+\.\S+$/, "Please enter a valid email address"],
224
+ },
225
+ supportPhone: {
226
+ type: String,
227
+ trim: true,
228
+ },
229
+ termsAndConditions: {
230
+ type: String,
231
+ trim: true,
232
+ },
233
+ },
234
+ createdAt: {
235
+ type: Date,
236
+ default: Date.now,
237
+ },
238
+ updatedAt: {
239
+ type: Date,
240
+ default: Date.now,
241
+ },
242
+ });
243
+
244
+ const FacilityInvoiceContract = mongoose.model(
245
+ "FacilityInvoiceContract",
246
+ facilityInvoiceContractSchema,
247
+ );
248
+
249
+ module.exports = FacilityInvoiceContract;