payservedb 6.0.8 → 6.1.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 (132) hide show
  1. package/.env +2 -2
  2. package/index.js +214 -214
  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/assetsAssignment.js +64 -64
  11. package/src/models/auditlog.js +83 -83
  12. package/src/models/bankdetails.js +40 -40
  13. package/src/models/billerAddress.js +119 -119
  14. package/src/models/booking_invoice.js +151 -151
  15. package/src/models/bookinganalytics.js +63 -63
  16. package/src/models/bookingconfig.js +45 -45
  17. package/src/models/bookingproperty.js +112 -112
  18. package/src/models/bookingreservation.js +192 -192
  19. package/src/models/bookingrevenuerecord.js +84 -84
  20. package/src/models/budget.js +95 -95
  21. package/src/models/budgetCategory.js +19 -19
  22. package/src/models/campaigns.js +72 -72
  23. package/src/models/cashpayment.js +264 -264
  24. package/src/models/combinedUnits.js +62 -62
  25. package/src/models/common_area_electricity.js +38 -38
  26. package/src/models/common_area_generator.js +41 -41
  27. package/src/models/common_area_utility_alert.js +37 -37
  28. package/src/models/common_area_water.js +39 -39
  29. package/src/models/communication_status.js +33 -33
  30. package/src/models/company.js +53 -53
  31. package/src/models/country_tax.js +42 -42
  32. package/src/models/currency_settings.js +39 -39
  33. package/src/models/customer.js +208 -204
  34. package/src/models/default_payment_details.js +17 -17
  35. package/src/models/deliveryTimeMarks.js +18 -18
  36. package/src/models/dutyroster.js +107 -107
  37. package/src/models/email.js +37 -37
  38. package/src/models/email_sms_queue.js +61 -61
  39. package/src/models/entry_exit.js +53 -53
  40. package/src/models/expense.js +99 -99
  41. package/src/models/expense_category.js +45 -45
  42. package/src/models/facility.js +61 -61
  43. package/src/models/facility_departements.js +20 -20
  44. package/src/models/facility_payment_details.js +20 -20
  45. package/src/models/facilityasset.js +25 -25
  46. package/src/models/faq.js +18 -18
  47. package/src/models/gl_account_double_entries.js +25 -25
  48. package/src/models/gl_accounts.js +56 -56
  49. package/src/models/gl_entries.js +49 -49
  50. package/src/models/goodsReceivedNotes.js +115 -115
  51. package/src/models/guard.js +47 -47
  52. package/src/models/handover.js +246 -246
  53. package/src/models/invoice.js +336 -336
  54. package/src/models/item_inspection.js +67 -67
  55. package/src/models/leaseagreement.js +221 -221
  56. package/src/models/leasetemplate.js +17 -17
  57. package/src/models/levy.js +206 -206
  58. package/src/models/levy_invoice_settings.js +26 -26
  59. package/src/models/levycontract.js +117 -117
  60. package/src/models/levytype.js +23 -23
  61. package/src/models/maintenance_service_vendor.js +38 -38
  62. package/src/models/maintenance_services.js +17 -17
  63. package/src/models/maintenancerequisition.js +31 -31
  64. package/src/models/message.js +38 -38
  65. package/src/models/module.js +21 -21
  66. package/src/models/notification.js +44 -44
  67. package/src/models/paymentTermsMarks.js +19 -19
  68. package/src/models/penalty.js +76 -76
  69. package/src/models/pendingCredentials.js +32 -32
  70. package/src/models/powerMeterCustomerBand.js +45 -45
  71. package/src/models/powerMeterDailyReading.js +49 -49
  72. package/src/models/powerMeterMonthlyReading.js +49 -49
  73. package/src/models/powerMeterPowerCharges.js +49 -50
  74. package/src/models/powerMeterSingleDayReading.js +49 -49
  75. package/src/models/powerMeterTariffs.js +49 -49
  76. package/src/models/powerMeters.js +53 -49
  77. package/src/models/powerMetersManufacturer.js +14 -14
  78. package/src/models/propertyManagerContract.js +463 -463
  79. package/src/models/propertyManagerRevenue.js +195 -100
  80. package/src/models/purchaseOrderInvoice.js +74 -74
  81. package/src/models/purchase_order.js +202 -202
  82. package/src/models/purchase_request.js +110 -110
  83. package/src/models/refresh_token.js +23 -23
  84. package/src/models/reminder.js +197 -197
  85. package/src/models/report.js +13 -13
  86. package/src/models/resident.js +121 -121
  87. package/src/models/rfq_details.js +131 -131
  88. package/src/models/rfq_response.js +153 -153
  89. package/src/models/service_charge_invoice_upload.js +42 -42
  90. package/src/models/service_charge_payments.js +27 -27
  91. package/src/models/servicerequest.js +55 -55
  92. package/src/models/settings.js +62 -62
  93. package/src/models/smart_meter_daily_consumption.js +44 -44
  94. package/src/models/sms_africastalking.js +20 -20
  95. package/src/models/sms_meliora.js +20 -20
  96. package/src/models/staff.js +36 -36
  97. package/src/models/stocksandspare.js +34 -34
  98. package/src/models/suppliers.js +74 -74
  99. package/src/models/tickets.js +121 -121
  100. package/src/models/unitManagementTemplate.js +44 -44
  101. package/src/models/unitasset.js +25 -25
  102. package/src/models/units.js +112 -112
  103. package/src/models/user.js +186 -186
  104. package/src/models/valueaddedservices.js +79 -79
  105. package/src/models/vas_invoices_upload.js +50 -50
  106. package/src/models/vas_payments.js +24 -24
  107. package/src/models/vasinvoice.js +192 -192
  108. package/src/models/vasvendor.js +57 -57
  109. package/src/models/visitLog.js +86 -86
  110. package/src/models/visitor.js +67 -67
  111. package/src/models/waitlist.js +45 -45
  112. package/src/models/wallet.js +39 -39
  113. package/src/models/wallet_transactions.js +50 -50
  114. package/src/models/water_invoice.js +193 -193
  115. package/src/models/water_meter_Command_Queue.js +33 -33
  116. package/src/models/water_meter_account.js +78 -78
  117. package/src/models/water_meter_billing.js +58 -58
  118. package/src/models/water_meter_communication.js +17 -17
  119. package/src/models/water_meter_communication_logs.js +30 -30
  120. package/src/models/water_meter_concentrator.js +63 -63
  121. package/src/models/water_meter_daily_history.js +32 -32
  122. package/src/models/water_meter_iot_cards.js +34 -34
  123. package/src/models/water_meter_manufacturer.js +35 -35
  124. package/src/models/water_meter_monthly_history.js +36 -36
  125. package/src/models/water_meter_settings.js +114 -114
  126. package/src/models/water_meter_single_day_history.js +34 -34
  127. package/src/models/water_meter_size.js +15 -15
  128. package/src/models/water_meters.js +117 -117
  129. package/src/models/water_meters_delivery.js +76 -76
  130. package/src/models/water_prepaid_credit.js +43 -43
  131. package/src/models/water_prepaid_debit.js +50 -50
  132. package/src/models/workorder.js +49 -49
@@ -1,19 +1,19 @@
1
- const mongoose = require('mongoose');
2
-
3
- const paymentTermMarkSchema = new mongoose.Schema({
4
- paymentTerm: {
5
- type: String,
6
- required: true,
7
- trim: true
8
- },
9
- marks: {
10
- type: Number,
11
- required: true
12
- }
13
- }, {
14
- timestamps: true
15
- });
16
-
17
- const PaymentTermMark = mongoose.model('PaymentTermMark', paymentTermMarkSchema);
18
-
19
- module.exports = PaymentTermMark;
1
+ const mongoose = require('mongoose');
2
+
3
+ const paymentTermMarkSchema = new mongoose.Schema({
4
+ paymentTerm: {
5
+ type: String,
6
+ required: true,
7
+ trim: true
8
+ },
9
+ marks: {
10
+ type: Number,
11
+ required: true
12
+ }
13
+ }, {
14
+ timestamps: true
15
+ });
16
+
17
+ const PaymentTermMark = mongoose.model('PaymentTermMark', paymentTermMarkSchema);
18
+
19
+ module.exports = PaymentTermMark;
@@ -1,77 +1,77 @@
1
- const mongoose = require("mongoose");
2
-
3
- const penaltySchema = new mongoose.Schema(
4
- {
5
- name: {
6
- type: String,
7
- required: true,
8
- },
9
- type: {
10
- type: String,
11
- required: true,
12
- enum: ['percentage', 'fixed']
13
- },
14
- effectDays: {
15
- type: Number,
16
- required: true,
17
- min: [1, "Effect days must be at least 1"]
18
- },
19
- percentage: {
20
- type: Number,
21
- required: function () {
22
- return this.type === 'percentage';
23
- },
24
- min: [0, "Percentage must be at least 0"]
25
- },
26
- amount: {
27
- type: Number,
28
- required: function () {
29
- return this.type === 'fixed';
30
- },
31
- min: [0, "Amount must be a positive number"]
32
- },
33
- module: {
34
- type: String,
35
- required: true,
36
- enum: ['levy', 'lease', 'utility']
37
- },
38
- moduleId: {
39
- type: mongoose.Schema.Types.ObjectId,
40
- required: true,
41
- refPath: 'module'
42
- },
43
- isActive: {
44
- type: Boolean,
45
- default: true,
46
- },
47
- facilityId: {
48
- type: mongoose.Schema.Types.ObjectId,
49
- ref: "Facility",
50
- required: true,
51
- index: true
52
- }
53
- },
54
- {
55
- timestamps: true,
56
- indexes: [
57
- { facilityId: 1, isActive: 1 },
58
- { moduleId: 1, module: 1 },
59
- { name: 1, facilityId: 1 }
60
- ]
61
- }
62
- );
63
-
64
- // Add any custom methods or middleware here if needed
65
- penaltySchema.pre('save', function (next) {
66
- // Clear the irrelevant field based on penalty type
67
- if (this.type === 'percentage') {
68
- this.amount = null;
69
- } else if (this.type === 'fixed') {
70
- this.percentage = null;
71
- }
72
- next();
73
- });
74
-
75
- const Penalty = mongoose.model("Penalty", penaltySchema);
76
-
1
+ const mongoose = require("mongoose");
2
+
3
+ const penaltySchema = new mongoose.Schema(
4
+ {
5
+ name: {
6
+ type: String,
7
+ required: true,
8
+ },
9
+ type: {
10
+ type: String,
11
+ required: true,
12
+ enum: ['percentage', 'fixed']
13
+ },
14
+ effectDays: {
15
+ type: Number,
16
+ required: true,
17
+ min: [1, "Effect days must be at least 1"]
18
+ },
19
+ percentage: {
20
+ type: Number,
21
+ required: function () {
22
+ return this.type === 'percentage';
23
+ },
24
+ min: [0, "Percentage must be at least 0"]
25
+ },
26
+ amount: {
27
+ type: Number,
28
+ required: function () {
29
+ return this.type === 'fixed';
30
+ },
31
+ min: [0, "Amount must be a positive number"]
32
+ },
33
+ module: {
34
+ type: String,
35
+ required: true,
36
+ enum: ['levy', 'lease', 'utility']
37
+ },
38
+ moduleId: {
39
+ type: mongoose.Schema.Types.ObjectId,
40
+ required: true,
41
+ refPath: 'module'
42
+ },
43
+ isActive: {
44
+ type: Boolean,
45
+ default: true,
46
+ },
47
+ facilityId: {
48
+ type: mongoose.Schema.Types.ObjectId,
49
+ ref: "Facility",
50
+ required: true,
51
+ index: true
52
+ }
53
+ },
54
+ {
55
+ timestamps: true,
56
+ indexes: [
57
+ { facilityId: 1, isActive: 1 },
58
+ { moduleId: 1, module: 1 },
59
+ { name: 1, facilityId: 1 }
60
+ ]
61
+ }
62
+ );
63
+
64
+ // Add any custom methods or middleware here if needed
65
+ penaltySchema.pre('save', function (next) {
66
+ // Clear the irrelevant field based on penalty type
67
+ if (this.type === 'percentage') {
68
+ this.amount = null;
69
+ } else if (this.type === 'fixed') {
70
+ this.percentage = null;
71
+ }
72
+ next();
73
+ });
74
+
75
+ const Penalty = mongoose.model("Penalty", penaltySchema);
76
+
77
77
  module.exports = Penalty;
@@ -1,33 +1,33 @@
1
- const mongoose = require("mongoose");
2
-
3
- const pendingCredentialSchema = new mongoose.Schema({
4
- userId: {
5
- type: mongoose.Schema.Types.ObjectId,
6
- ref: 'User',
7
- required: true
8
- },
9
- email: String,
10
- phoneNumber: String,
11
- fullName: String,
12
- userType: String,
13
- password: String, // Temporary storage of plain password for sending
14
- facilityId: mongoose.Schema.Types.ObjectId,
15
- status: {
16
- type: String,
17
- enum: ['pending', 'sent', 'failed'],
18
- default: 'pending'
19
- },
20
- retryCount: {
21
- type: Number,
22
- default: 0
23
- },
24
- createdAt: {
25
- type: Date,
26
- default: Date.now,
27
- expires: '7d' // Auto-delete after 7 days
28
- }
29
- });
30
-
31
- const PendingCredential = mongoose.model("PendingCredential", pendingCredentialSchema);
32
-
1
+ const mongoose = require("mongoose");
2
+
3
+ const pendingCredentialSchema = new mongoose.Schema({
4
+ userId: {
5
+ type: mongoose.Schema.Types.ObjectId,
6
+ ref: 'User',
7
+ required: true
8
+ },
9
+ email: String,
10
+ phoneNumber: String,
11
+ fullName: String,
12
+ userType: String,
13
+ password: String, // Temporary storage of plain password for sending
14
+ facilityId: mongoose.Schema.Types.ObjectId,
15
+ status: {
16
+ type: String,
17
+ enum: ['pending', 'sent', 'failed'],
18
+ default: 'pending'
19
+ },
20
+ retryCount: {
21
+ type: Number,
22
+ default: 0
23
+ },
24
+ createdAt: {
25
+ type: Date,
26
+ default: Date.now,
27
+ expires: '7d' // Auto-delete after 7 days
28
+ }
29
+ });
30
+
31
+ const PendingCredential = mongoose.model("PendingCredential", pendingCredentialSchema);
32
+
33
33
  module.exports = PendingCredential;
@@ -1,45 +1,45 @@
1
- const mongoose = require('mongoose');
2
-
3
- const powerMeterCustomerBandSchema = new mongoose.Schema({
4
- facilityId: {
5
- type: mongoose.Schema.Types.ObjectId,
6
- ref: 'Facility',
7
- required: true
8
- },
9
- meterSerialNumber: {
10
- type: String,
11
- required: true
12
- },
13
- deviceId: {
14
- type: Number,
15
- required: false
16
- },
17
- gatewayId: {
18
- type: String,
19
- required: true
20
- },
21
- meterReading: {
22
- type: Number,
23
- required: true
24
- },
25
- lastUpdated: {
26
- type: Date,
27
- required: true
28
- },
29
- manufacturer: {
30
- type: String,
31
- required: true
32
- },
33
- type: {
34
- type: String,
35
- required: true,
36
- enum: ['2 phase', '3 phase'],
37
- default: '2 phase'
38
- }
39
- }, {
40
- timestamps: true
41
- });
42
-
43
- const PowerMeterCustomerBand = mongoose.model('PowerMeterCustomerBand', powerMeterCustomerBandSchema);
44
-
45
- module.exports = PowerMeterCustomerBand;
1
+ const mongoose = require('mongoose');
2
+
3
+ const powerMeterCustomerBandSchema = new mongoose.Schema({
4
+ facilityId: {
5
+ type: mongoose.Schema.Types.ObjectId,
6
+ ref: 'Facility',
7
+ required: true
8
+ },
9
+ meterSerialNumber: {
10
+ type: String,
11
+ required: true
12
+ },
13
+ deviceId: {
14
+ type: Number,
15
+ required: false
16
+ },
17
+ gatewayId: {
18
+ type: String,
19
+ required: true
20
+ },
21
+ meterReading: {
22
+ type: Number,
23
+ required: true
24
+ },
25
+ lastUpdated: {
26
+ type: Date,
27
+ required: true
28
+ },
29
+ manufacturer: {
30
+ type: String,
31
+ required: true
32
+ },
33
+ type: {
34
+ type: String,
35
+ required: true,
36
+ enum: ['2 phase', '3 phase'],
37
+ default: '2 phase'
38
+ }
39
+ }, {
40
+ timestamps: true
41
+ });
42
+
43
+ const PowerMeterCustomerBand = mongoose.model('PowerMeterCustomerBand', powerMeterCustomerBandSchema);
44
+
45
+ module.exports = PowerMeterCustomerBand;
@@ -1,50 +1,50 @@
1
- const mongoose = require('mongoose');
2
-
3
- const powerMeterDailyReadingSchema = new mongoose.Schema({
4
- facilityId: {
5
- type: mongoose.Schema.Types.ObjectId,
6
- ref: 'Facility',
7
- required: true
8
- },
9
- meterSerialNumber: {
10
- type: String,
11
- required: true
12
- },
13
- deviceId: {
14
- type: Number,
15
- required: false
16
-
17
- },
18
- gatewayId: {
19
- type: String,
20
- required: true
21
-
22
- },
23
- meterReading: {
24
- type: Number,
25
- required: true,
26
-
27
- },
28
- lastUpdated: {
29
- type: Date,
30
- required: true
31
-
32
- },
33
- manufacturer: {
34
- type: String,
35
- required: true
36
- },
37
- type: {
38
- type: String,
39
- required: true,
40
- enum: ['2 phase', '3 phase'],
41
- default: '2 phase'
42
-
43
- }
44
- }, {
45
- timestamps: true
46
- });
47
-
48
- const PowerMeterDailyReading = mongoose.model('PowerMeter', powerMeterDailyReadingSchema);
49
-
1
+ const mongoose = require('mongoose');
2
+
3
+ const powerMeterDailyReadingSchema = new mongoose.Schema({
4
+ facilityId: {
5
+ type: mongoose.Schema.Types.ObjectId,
6
+ ref: 'Facility',
7
+ required: true
8
+ },
9
+ meterSerialNumber: {
10
+ type: String,
11
+ required: true
12
+ },
13
+ deviceId: {
14
+ type: Number,
15
+ required: false
16
+
17
+ },
18
+ gatewayId: {
19
+ type: String,
20
+ required: true
21
+
22
+ },
23
+ meterReading: {
24
+ type: Number,
25
+ required: true,
26
+
27
+ },
28
+ lastUpdated: {
29
+ type: Date,
30
+ required: true
31
+
32
+ },
33
+ manufacturer: {
34
+ type: String,
35
+ required: true
36
+ },
37
+ type: {
38
+ type: String,
39
+ required: true,
40
+ enum: ['2 phase', '3 phase'],
41
+ default: '2 phase'
42
+
43
+ }
44
+ }, {
45
+ timestamps: true
46
+ });
47
+
48
+ const PowerMeterDailyReading = mongoose.model('PowerMeter', powerMeterDailyReadingSchema);
49
+
50
50
  module.exports = PowerMeterDailyReading;
@@ -1,50 +1,50 @@
1
- const mongoose = require('mongoose');
2
-
3
- const powerMeterMonthlyReadingSchema = new mongoose.Schema({
4
- facilityId: {
5
- type: mongoose.Schema.Types.ObjectId,
6
- ref: 'Facility',
7
- required: true
8
- },
9
- meterSerialNumber: {
10
- type: String,
11
- required: true
12
- },
13
- deviceId: {
14
- type: Number,
15
- required: false
16
-
17
- },
18
- gatewayId: {
19
- type: String,
20
- required: true
21
-
22
- },
23
- meterReading: {
24
- type: Number,
25
- required: true,
26
-
27
- },
28
- lastUpdated: {
29
- type: Date,
30
- required: true
31
-
32
- },
33
- manufacturer: {
34
- type: String,
35
- required: true
36
- },
37
- type: {
38
- type: String,
39
- required: true,
40
- enum: ['2 phase', '3 phase'],
41
- default: '2 phase'
42
-
43
- }
44
- }, {
45
- timestamps: true
46
- });
47
-
48
- const PowerMeterMonthlyReading = mongoose.model('PowerMeterMonthlyReading', powerMeterMonthlyReadingSchema);
49
-
1
+ const mongoose = require('mongoose');
2
+
3
+ const powerMeterMonthlyReadingSchema = new mongoose.Schema({
4
+ facilityId: {
5
+ type: mongoose.Schema.Types.ObjectId,
6
+ ref: 'Facility',
7
+ required: true
8
+ },
9
+ meterSerialNumber: {
10
+ type: String,
11
+ required: true
12
+ },
13
+ deviceId: {
14
+ type: Number,
15
+ required: false
16
+
17
+ },
18
+ gatewayId: {
19
+ type: String,
20
+ required: true
21
+
22
+ },
23
+ meterReading: {
24
+ type: Number,
25
+ required: true,
26
+
27
+ },
28
+ lastUpdated: {
29
+ type: Date,
30
+ required: true
31
+
32
+ },
33
+ manufacturer: {
34
+ type: String,
35
+ required: true
36
+ },
37
+ type: {
38
+ type: String,
39
+ required: true,
40
+ enum: ['2 phase', '3 phase'],
41
+ default: '2 phase'
42
+
43
+ }
44
+ }, {
45
+ timestamps: true
46
+ });
47
+
48
+ const PowerMeterMonthlyReading = mongoose.model('PowerMeterMonthlyReading', powerMeterMonthlyReadingSchema);
49
+
50
50
  module.exports = PowerMeterMonthlyReading;
@@ -1,50 +1,49 @@
1
- const mongoose = require('mongoose');
2
-
3
- const powerMeterPowerChargeSchema = new mongoose.Schema({
4
- facilityId: {
5
- type: mongoose.Schema.Types.ObjectId,
6
- ref: 'Facility',
7
- required: true
8
- },
9
- meterSerialNumber: {
10
- type: String,
11
- required: true
12
- },
13
- deviceId: {
14
- type: Number,
15
- required: false
16
-
17
- },
18
- gatewayId: {
19
- type: String,
20
- required: true
21
-
22
- },
23
- meterReading: {
24
- type: Number,
25
- required: true,
26
-
27
- },
28
- lastUpdated: {
29
- type: Date,
30
- required: true
31
-
32
- },
33
- manufacturer: {
34
- type: String,
35
- required: true
36
- },
37
- type: {
38
- type: String,
39
- required: true,
40
- enum: ['2 phase', '3 phase'],
41
- default: '2 phase'
42
-
43
- }
44
- }, {
45
- timestamps: true
46
- });
47
-
48
- const PowerMeterPowerCharge = mongoose.model('PowerMeterPowerCharge', powerMeterPowerChargeSchema);
49
-
50
- module.exports = PowerMeterPowerCharge;
1
+ const mongoose = require('mongoose');
2
+
3
+ const powerMeterPowerChargeSchema = new mongoose.Schema({
4
+ facilityId: {
5
+ type: mongoose.Schema.Types.ObjectId,
6
+ ref: 'Facility',
7
+ required: true
8
+ },
9
+ // KPLC Power Charges
10
+ fuelCostCharge: {
11
+ type: Number,
12
+ required: true
13
+ },
14
+ forexAdjustment: {
15
+ type: Number,
16
+ required: true
17
+ },
18
+ inflationAdjustment: {
19
+ type: Number,
20
+ required: true
21
+ },
22
+ waterResourceManagementLevy: {
23
+ type: Number,
24
+ required: true
25
+ },
26
+ energyRegulatoryLevy: {
27
+ type: Number,
28
+ required: true
29
+ },
30
+ ruralElectrificationLevy: {
31
+ type: Number,
32
+ required: true
33
+ },
34
+ valueAddedTax: {
35
+ type: Number,
36
+ required: true
37
+ },
38
+ totalCharge: {
39
+ type: Number,
40
+ required: true
41
+ }
42
+
43
+ }, {
44
+ timestamps: true
45
+ });
46
+
47
+ const PowerMeterPowerCharge = mongoose.model('PowerMeterPowerCharge', powerMeterPowerChargeSchema);
48
+
49
+ module.exports = PowerMeterPowerCharge;