payservedb 6.9.8 → 7.0.0

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 (159) hide show
  1. package/.env +2 -2
  2. package/index.js +287 -283
  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 +51 -0
  47. package/src/models/facilityInvoice.js +222 -223
  48. package/src/models/facilityInvoiceContract.js +268 -0
  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/power_meter_command_queue.js +33 -0
  93. package/src/models/power_meter_negative_balance.js +44 -0
  94. package/src/models/power_prepaid_credits.js +47 -0
  95. package/src/models/power_prepaid_debits.js +50 -0
  96. package/src/models/propertyManagerContract.js +556 -556
  97. package/src/models/propertyManagerRevenue.js +195 -195
  98. package/src/models/purchaseOrderInvoice.js +74 -74
  99. package/src/models/purchase_order.js +213 -213
  100. package/src/models/purchase_request.js +110 -110
  101. package/src/models/refresh_token.js +23 -23
  102. package/src/models/reminder.js +197 -197
  103. package/src/models/report.js +13 -13
  104. package/src/models/resident.js +121 -121
  105. package/src/models/rfq_details.js +131 -131
  106. package/src/models/rfq_response.js +153 -153
  107. package/src/models/service_charge_invoice_upload.js +42 -42
  108. package/src/models/service_charge_payments.js +27 -27
  109. package/src/models/servicerequest.js +55 -55
  110. package/src/models/settings.js +62 -62
  111. package/src/models/smart_meter_daily_consumption.js +44 -44
  112. package/src/models/sms_africastalking.js +20 -20
  113. package/src/models/sms_balance_notification.js +26 -26
  114. package/src/models/sms_meliora.js +20 -20
  115. package/src/models/staff.js +36 -36
  116. package/src/models/stocksandspare.js +161 -161
  117. package/src/models/suppliers.js +74 -74
  118. package/src/models/tickets.js +121 -121
  119. package/src/models/unitManagementTemplate.js +44 -44
  120. package/src/models/unitasset.js +25 -25
  121. package/src/models/units.js +117 -117
  122. package/src/models/user.js +186 -186
  123. package/src/models/valueaddedservices.js +79 -79
  124. package/src/models/vas_invoices_upload.js +50 -50
  125. package/src/models/vas_payments.js +24 -24
  126. package/src/models/vasinvoice.js +192 -192
  127. package/src/models/vasvendor.js +57 -57
  128. package/src/models/visitLog.js +95 -95
  129. package/src/models/visitor.js +67 -67
  130. package/src/models/waitlist.js +45 -45
  131. package/src/models/wallet.js +44 -44
  132. package/src/models/wallet_transactions.js +50 -50
  133. package/src/models/water_invoice.js +305 -305
  134. package/src/models/water_meter_Command_Queue.js +33 -33
  135. package/src/models/water_meter_account.js +82 -82
  136. package/src/models/water_meter_billing.js +58 -58
  137. package/src/models/water_meter_communication.js +17 -17
  138. package/src/models/water_meter_communication_logs.js +40 -30
  139. package/src/models/water_meter_concentrator.js +66 -66
  140. package/src/models/water_meter_daily_history.js +32 -32
  141. package/src/models/water_meter_high_risk.js +37 -0
  142. package/src/models/water_meter_iot_cards.js +34 -34
  143. package/src/models/water_meter_manufacturer.js +35 -35
  144. package/src/models/water_meter_monthly_history.js +36 -36
  145. package/src/models/water_meter_negative_amounts.js +44 -39
  146. package/src/models/water_meter_settings.js +227 -227
  147. package/src/models/water_meter_single_day_history.js +34 -34
  148. package/src/models/water_meter_size.js +15 -15
  149. package/src/models/water_meters.js +134 -134
  150. package/src/models/water_meters_delivery.js +76 -76
  151. package/src/models/water_prepaid_credit.js +47 -47
  152. package/src/models/water_prepaid_debit.js +50 -50
  153. package/src/models/workorder.js +49 -49
  154. package/.idea/material_theme_project_new.xml +0 -12
  155. package/.idea/modules.xml +0 -8
  156. package/.idea/psdb.iml +0 -12
  157. package/.idea/vcs.xml +0 -6
  158. package/src/models/facilityInvoiceRecipient.js +0 -34
  159. package/src/models/power_prepaid_credts.js +0 -0
@@ -1,223 +1,222 @@
1
- const mongoose = require("mongoose");
2
- const {RecipientSchema} = require("./facilityInvoiceRecipient")
3
-
4
- const FacilityInvoiceSchema = new mongoose.Schema(
5
- {
6
- facilityId: {
7
- type: mongoose.Schema.Types.ObjectId,
8
- ref: "Facility",
9
- required: true,
10
- },
11
- facilityInvoiceContract: {
12
- type: mongoose.Schema.Types.ObjectId,
13
- ref: "FacilityInvoiceContract",
14
- required: true,
15
- },
16
- recipient: {
17
- type: RecipientSchema,
18
- required: true,
19
- },
20
- invoiceNumber: {
21
- type: String,
22
- required: true,
23
- trim: true,
24
- },
25
- invoiceDate: {
26
- type: Date,
27
- required: true,
28
- },
29
- dueDate: {
30
- type: Date,
31
- required: true,
32
- },
33
- status: {
34
- type: String,
35
- enum: ["pending", "paid", "overdue"],
36
- default: "pending",
37
- },
38
- invoiceType: {
39
- type: String,
40
- required: true,
41
- enum: ["unit", "license", "meters"],
42
- trim: true,
43
- },
44
- items: [
45
- {
46
- itemType: {
47
- type: String,
48
- required: true,
49
- enum: [
50
- "unit",
51
- "license",
52
- "powerMeters",
53
- "hotWaterMeters",
54
- "coldWaterMeters",
55
- ],
56
- trim: true,
57
- },
58
- name: {
59
- type: String,
60
- required: true,
61
- trim: true,
62
- },
63
- description: {
64
- type: String,
65
- required: true,
66
- trim: true,
67
- },
68
- detail: {
69
- type: String,
70
- trim: true,
71
- default: null,
72
- },
73
- quantity: {
74
- type: Number,
75
- required: true,
76
- min: [1, "Quantity must be at least 1"],
77
- default: 1,
78
- },
79
- unitPrice: {
80
- type: Number,
81
- required: true,
82
- min: [0, "Unit price cannot be negative"],
83
- },
84
- amount: {
85
- type: Number,
86
- required: true,
87
- min: [0, "Amount cannot be negative"],
88
- },
89
- },
90
- ],
91
- amount: {
92
- type: Number,
93
- required: true,
94
- min: [0, "Total amount cannot be negative"],
95
- },
96
- taxRate: {
97
- type: Number,
98
- min: [0, "Tax rate cannot be negative"],
99
- default: 0,
100
- },
101
- reminders: [
102
- {
103
- frequency: {
104
- type: String,
105
- required: true,
106
- enum: ["daily", "custom"],
107
- default: "daily",
108
- },
109
- customDays: {
110
- type: Number,
111
- required: function () {
112
- return this.frequency === "custom";
113
- },
114
- min: [1, "Custom days must be at least 1"],
115
- default: null,
116
- },
117
- startDate: {
118
- type: Date,
119
- required: true,
120
- },
121
- status: {
122
- type: String,
123
- enum: ["sent", "pending"],
124
- default: "pending",
125
- },
126
- },
127
- ],
128
- header: {
129
- companyName: {
130
- type: String,
131
- required: true,
132
- trim: true,
133
- },
134
- companyAddress: {
135
- type: String,
136
- required: true,
137
- trim: true,
138
- },
139
- companyPhone: {
140
- type: String,
141
- trim: true,
142
- },
143
- companyEmail: {
144
- type: String,
145
- trim: true,
146
- lowercase: true,
147
- match: [/^\S+@\S+\.\S+$/, "Please enter a valid email address"],
148
- },
149
- companyWebsite: {
150
- type: String,
151
- trim: true,
152
- match: [/^https?:\/\/[^\s$.?#].[^\s]*$/, "Please enter a valid URL"],
153
- },
154
- taxNumber: {
155
- type: String,
156
- trim: true,
157
- },
158
- logo: {
159
- type: String,
160
- default: null,
161
- },
162
- },
163
- footer: {
164
- bankName: {
165
- type: String,
166
- trim: true,
167
- },
168
- accountName: {
169
- type: String,
170
- trim: true,
171
- },
172
- accountNumber: {
173
- type: String,
174
- trim: true,
175
- },
176
- swiftCode: {
177
- type: String,
178
- trim: true,
179
- },
180
- paymentTerms: {
181
- type: String,
182
- trim: true,
183
- default: "Net 30 days",
184
- },
185
- latePaymentFee: {
186
- type: String,
187
- trim: true,
188
- },
189
- taxRate: {
190
- type: String,
191
- trim: true,
192
- },
193
- additionalNotes: {
194
- type: String,
195
- trim: true,
196
- },
197
- supportEmail: {
198
- type: String,
199
- trim: true,
200
- lowercase: true,
201
- match: [/^\S+@\S+\.\S+$/, "Please enter a valid email address"],
202
- },
203
- supportPhone: {
204
- type: String,
205
- trim: true,
206
- },
207
- termsAndConditions: {
208
- type: String,
209
- trim: true,
210
- },
211
- },
212
- },
213
- {
214
- timestamps: true,
215
- },
216
- );
217
-
218
- const FacilityInvoice = mongoose.model(
219
- "FacilityInvoice",
220
- FacilityInvoiceSchema,
221
- );
222
-
223
- module.exports = FacilityInvoice;
1
+ const mongoose = require("mongoose");
2
+
3
+ const FacilityInvoiceSchema = new mongoose.Schema(
4
+ {
5
+ facilityId: {
6
+ type: mongoose.Schema.Types.ObjectId,
7
+ ref: "Facility",
8
+ required: true,
9
+ },
10
+ facilityInvoiceContract: {
11
+ type: mongoose.Schema.Types.ObjectId,
12
+ ref: "FacilityInvoiceContract",
13
+ required: true,
14
+ },
15
+ invoiceNumber: {
16
+ type: String,
17
+ required: true,
18
+ trim: true,
19
+ },
20
+ invoiceDate: {
21
+ type: Date,
22
+ required: true,
23
+ },
24
+ dueDate: {
25
+ type: Date,
26
+ required: true,
27
+ },
28
+ status: {
29
+ type: String,
30
+ enum: ["pending", "paid", "overdue"],
31
+ default: "pending",
32
+ },
33
+ invoiceType: {
34
+ type: String,
35
+ required: true,
36
+ enum: ["unit", "license", "meters"],
37
+ trim: true,
38
+ },
39
+ items: [
40
+ {
41
+ itemType: {
42
+ type: String,
43
+ required: true,
44
+ enum: [
45
+ "unit",
46
+ "license",
47
+ "powerMeters",
48
+ "hotWaterMeters",
49
+ "coldWaterMeters",
50
+ ],
51
+ trim: true,
52
+ },
53
+ name: {
54
+ type: String,
55
+ required: true,
56
+ trim: true,
57
+ },
58
+ description: {
59
+ type: String,
60
+ required: true,
61
+ trim: true,
62
+ },
63
+ detail: {
64
+ type: String,
65
+ trim: true,
66
+ default: null,
67
+ },
68
+ quantity: {
69
+ type: Number,
70
+ required: true,
71
+ min: [1, "Quantity must be at least 1"],
72
+ default: 1,
73
+ },
74
+ unitPrice: {
75
+ type: Number,
76
+ required: true,
77
+ min: [0, "Unit price cannot be negative"],
78
+ },
79
+ amount: {
80
+ type: Number,
81
+ required: true,
82
+ min: [0, "Amount cannot be negative"],
83
+ },
84
+ },
85
+ ],
86
+ amount: {
87
+ type: Number,
88
+ required: true,
89
+ min: [0, "Total amount cannot be negative"],
90
+ },
91
+ taxRate: {
92
+ type: Number,
93
+ min: [0, "Tax rate cannot be negative"],
94
+ default: 0,
95
+ },
96
+ prorate: {
97
+ type: Boolean,
98
+ default: false,
99
+ },
100
+ reminders: [
101
+ {
102
+ frequency: {
103
+ type: String,
104
+ required: true,
105
+ enum: ["daily", "custom"],
106
+ default: "daily",
107
+ },
108
+ customDays: {
109
+ type: Number,
110
+ required: function () {
111
+ return this.frequency === "custom";
112
+ },
113
+ min: [1, "Custom days must be at least 1"],
114
+ default: null,
115
+ },
116
+ startDate: {
117
+ type: Date,
118
+ required: true,
119
+ },
120
+ status: {
121
+ type: String,
122
+ enum: ["sent", "pending"],
123
+ default: "pending",
124
+ },
125
+ },
126
+ ],
127
+ header: {
128
+ companyName: {
129
+ type: String,
130
+ required: true,
131
+ trim: true,
132
+ },
133
+ companyAddress: {
134
+ type: String,
135
+ required: true,
136
+ trim: true,
137
+ },
138
+ companyPhone: {
139
+ type: String,
140
+ trim: true,
141
+ },
142
+ companyEmail: {
143
+ type: String,
144
+ trim: true,
145
+ lowercase: true,
146
+ match: [/^\S+@\S+\.\S+$/, "Please enter a valid email address"],
147
+ },
148
+ companyWebsite: {
149
+ type: String,
150
+ trim: true,
151
+ match: [/^https?:\/\/[^\s$.?#].[^\s]*$/, "Please enter a valid URL"],
152
+ },
153
+ taxNumber: {
154
+ type: String,
155
+ trim: true,
156
+ },
157
+ logo: {
158
+ type: String,
159
+ default: null,
160
+ },
161
+ },
162
+ footer: {
163
+ bankName: {
164
+ type: String,
165
+ trim: true,
166
+ },
167
+ accountName: {
168
+ type: String,
169
+ trim: true,
170
+ },
171
+ accountNumber: {
172
+ type: String,
173
+ trim: true,
174
+ },
175
+ swiftCode: {
176
+ type: String,
177
+ trim: true,
178
+ },
179
+ paymentTerms: {
180
+ type: String,
181
+ trim: true,
182
+ default: "Net 30 days",
183
+ },
184
+ latePaymentFee: {
185
+ type: String,
186
+ trim: true,
187
+ },
188
+ taxRate: {
189
+ type: String,
190
+ trim: true,
191
+ },
192
+ additionalNotes: {
193
+ type: String,
194
+ trim: true,
195
+ },
196
+ supportEmail: {
197
+ type: String,
198
+ trim: true,
199
+ lowercase: true,
200
+ match: [/^\S+@\S+\.\S+$/, "Please enter a valid email address"],
201
+ },
202
+ supportPhone: {
203
+ type: String,
204
+ trim: true,
205
+ },
206
+ termsAndConditions: {
207
+ type: String,
208
+ trim: true,
209
+ },
210
+ },
211
+ },
212
+ {
213
+ timestamps: true,
214
+ },
215
+ );
216
+
217
+ const FacilityInvoice = mongoose.model(
218
+ "FacilityInvoice",
219
+ FacilityInvoiceSchema,
220
+ );
221
+
222
+ module.exports = FacilityInvoice;