payservedb 4.3.8 → 4.4.1

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 (82) hide show
  1. package/.env +2 -2
  2. package/index.js +152 -152
  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/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/budget.js +33 -33
  13. package/src/models/budgetCategory.js +19 -19
  14. package/src/models/campaigns.js +72 -72
  15. package/src/models/cashpayment.js +185 -185
  16. package/src/models/combinedUnits.js +62 -62
  17. package/src/models/company.js +53 -53
  18. package/src/models/country_tax.js +42 -42
  19. package/src/models/currency_settings.js +39 -39
  20. package/src/models/customer.js +178 -178
  21. package/src/models/default_payment_details.js +17 -17
  22. package/src/models/dutyroster.js +39 -39
  23. package/src/models/email.js +24 -24
  24. package/src/models/entry_exit.js +53 -53
  25. package/src/models/expense.js +55 -55
  26. package/src/models/facility.js +58 -58
  27. package/src/models/facility_payment_details.js +20 -20
  28. package/src/models/facilityasset.js +25 -25
  29. package/src/models/faq.js +18 -18
  30. package/src/models/guard.js +47 -47
  31. package/src/models/handover.js +241 -241
  32. package/src/models/invoice.js +252 -210
  33. package/src/models/item_inspection.js +67 -67
  34. package/src/models/leaseagreement.js +156 -156
  35. package/src/models/leasetemplate.js +17 -17
  36. package/src/models/levy.js +72 -72
  37. package/src/models/levy_invoice_settings.js +26 -26
  38. package/src/models/levycontract.js +65 -65
  39. package/src/models/levytype.js +23 -23
  40. package/src/models/maintenance_service_vendor.js +38 -38
  41. package/src/models/maintenance_services.js +17 -17
  42. package/src/models/maintenancerequisition.js +31 -31
  43. package/src/models/message.js +38 -38
  44. package/src/models/module.js +21 -21
  45. package/src/models/notification.js +24 -24
  46. package/src/models/penalty.js +76 -76
  47. package/src/models/refresh_token.js +23 -23
  48. package/src/models/reminder.js +161 -161
  49. package/src/models/report.js +13 -13
  50. package/src/models/resident.js +121 -121
  51. package/src/models/service_charge_invoice_upload.js +42 -42
  52. package/src/models/service_charge_payments.js +27 -27
  53. package/src/models/servicerequest.js +55 -55
  54. package/src/models/settings.js +62 -62
  55. package/src/models/smart_meter_daily_consumption.js +44 -44
  56. package/src/models/sms_africastalking.js +20 -20
  57. package/src/models/sms_meliora.js +16 -16
  58. package/src/models/staff.js +36 -36
  59. package/src/models/stocksandspare.js +34 -34
  60. package/src/models/tickets.js +109 -109
  61. package/src/models/unitasset.js +25 -25
  62. package/src/models/units.js +70 -70
  63. package/src/models/user.js +94 -94
  64. package/src/models/valueaddedservices.js +36 -36
  65. package/src/models/vas_invoices_upload.js +50 -50
  66. package/src/models/vas_payments.js +24 -24
  67. package/src/models/vasinvoice.js +159 -159
  68. package/src/models/vasvendor.js +57 -57
  69. package/src/models/visitLog.js +86 -86
  70. package/src/models/visitor.js +63 -63
  71. package/src/models/waitlist.js +45 -45
  72. package/src/models/water_invoice.js +192 -192
  73. package/src/models/water_meter_account.js +73 -74
  74. package/src/models/water_meter_communication.js +17 -17
  75. package/src/models/water_meter_concentrator.js +59 -59
  76. package/src/models/water_meter_iot_cards.js +34 -34
  77. package/src/models/water_meter_manufacturer.js +35 -35
  78. package/src/models/water_meter_settings.js +101 -88
  79. package/src/models/water_meter_size.js +15 -15
  80. package/src/models/water_meters.js +110 -110
  81. package/src/models/water_meters_delivery.js +76 -76
  82. package/src/models/workorder.js +49 -49
@@ -1,35 +1,35 @@
1
- const mongoose = require('mongoose');
2
-
3
- const iotCardSchema = new mongoose.Schema({
4
- serialNumber: {
5
- type: String,
6
- required: true,
7
- unique: true,
8
- trim: true
9
- },
10
- provider: {
11
- type: String,
12
- required: true,
13
- trim: true
14
- },
15
- concentrator: {
16
- type: mongoose.Schema.Types.ObjectId,
17
- ref: 'Concentrator'
18
- },
19
- location: {
20
- type: String,
21
- trim: true
22
- },
23
- status: {
24
- type: String,
25
- required: true,
26
- enum: ['active', 'inactive', 'suspended'],
27
- default: 'inactive'
28
- }
29
- }, {
30
- timestamps: true
31
- });
32
-
33
- const MeterIotCard = mongoose.model('MeterIotCard', iotCardSchema);
34
-
1
+ const mongoose = require('mongoose');
2
+
3
+ const iotCardSchema = new mongoose.Schema({
4
+ serialNumber: {
5
+ type: String,
6
+ required: true,
7
+ unique: true,
8
+ trim: true
9
+ },
10
+ provider: {
11
+ type: String,
12
+ required: true,
13
+ trim: true
14
+ },
15
+ concentrator: {
16
+ type: mongoose.Schema.Types.ObjectId,
17
+ ref: 'Concentrator'
18
+ },
19
+ location: {
20
+ type: String,
21
+ trim: true
22
+ },
23
+ status: {
24
+ type: String,
25
+ required: true,
26
+ enum: ['active', 'inactive', 'suspended'],
27
+ default: 'inactive'
28
+ }
29
+ }, {
30
+ timestamps: true
31
+ });
32
+
33
+ const MeterIotCard = mongoose.model('MeterIotCard', iotCardSchema);
34
+
35
35
  module.exports = MeterIotCard;
@@ -1,36 +1,36 @@
1
- const mongoose = require('mongoose');
2
-
3
- const manufacturerSchema = new mongoose.Schema({
4
- name: {
5
- type: String,
6
- required: true,
7
- unique: true,
8
- trim: true
9
- },
10
- country: {
11
- type: String,
12
- required: true,
13
- trim: true
14
- },
15
- contactPerson: {
16
- type: String,
17
- trim: true
18
- },
19
- email: {
20
- type: String,
21
- required: true,
22
- trim: true,
23
- lowercase: true
24
- },
25
- phoneNumber: {
26
- type: String,
27
- required: true,
28
- trim: true
29
- }
30
- }, {
31
- timestamps: true
32
- });
33
-
34
- const MeterManufacturer = mongoose.model('MeterManufacturer', manufacturerSchema);
35
-
1
+ const mongoose = require('mongoose');
2
+
3
+ const manufacturerSchema = new mongoose.Schema({
4
+ name: {
5
+ type: String,
6
+ required: true,
7
+ unique: true,
8
+ trim: true
9
+ },
10
+ country: {
11
+ type: String,
12
+ required: true,
13
+ trim: true
14
+ },
15
+ contactPerson: {
16
+ type: String,
17
+ trim: true
18
+ },
19
+ email: {
20
+ type: String,
21
+ required: true,
22
+ trim: true,
23
+ lowercase: true
24
+ },
25
+ phoneNumber: {
26
+ type: String,
27
+ required: true,
28
+ trim: true
29
+ }
30
+ }, {
31
+ timestamps: true
32
+ });
33
+
34
+ const MeterManufacturer = mongoose.model('MeterManufacturer', manufacturerSchema);
35
+
36
36
  module.exports = MeterManufacturer;
@@ -1,89 +1,102 @@
1
- const mongoose = require('mongoose');
2
-
3
- const waterMeterSettingsSchema = new mongoose.Schema({
4
- facilityId: {
5
- type: mongoose.Schema.Types.ObjectId,
6
- ref: 'Facility',
7
- required: true
8
- },
9
- minAmount: {
10
- type: Number,
11
- required: true,
12
- default: 1
13
- },
14
- maxAmount: {
15
- type: Number,
16
- required: true,
17
- default: 10000
18
- },
19
- gracePeriod: {
20
- type: Number,
21
- required: true,
22
- default: 10
23
- },
24
- invoiceDay: {
25
- type: Number,
26
- required: true,
27
- min: 0,
28
- max: 30,
29
- default: 3
30
- },
31
- enforcePayment: {
32
- type: String,
33
- enum: ['yes', 'no'],
34
- required: true,
35
- default: 'no'
36
- },
37
- minimumPaymentAmount: {
38
- type: Number,
39
- required: true,
40
- default: 0
41
- },
42
- tariff: {
43
- type: String,
44
- enum: ['yes', 'no'],
45
- required: true,
46
- default: 'no'
47
- },
48
- tariffAmount: {
49
- type: Number,
50
- required: true,
51
- default: 0
52
- },
53
- tariffAmountSmart: {
54
- type: Number,
55
- default: 0
56
- },
57
- fixedTariffAmount: {
58
- type: Number,
59
- required: true,
60
- default: 0
61
- },
62
- meterLoan: {
63
- type: Number,
64
- required: true,
65
- default: 0
66
- },
67
- notifications: {
68
- type: Boolean,
69
- default: false
70
- },
71
- dailyNotifications: {
72
- type: Boolean,
73
- default: false
74
- },
75
- weeklyNotifications: {
76
- type: Boolean,
77
- default: false
78
- },
79
- allNotifications: {
80
- type: Boolean,
81
- default: false
82
- }
83
- }, {
84
- timestamps: true
85
- });
86
-
87
- const WaterMeterSettings = mongoose.model('WaterMeterSettings', waterMeterSettingsSchema);
88
-
1
+ const mongoose = require('mongoose');
2
+
3
+ const waterMeterSettingsSchema = new mongoose.Schema({
4
+ facilityId: {
5
+ type: mongoose.Schema.Types.ObjectId,
6
+ ref: 'Facility',
7
+ required: true
8
+ },
9
+ minAmount: {
10
+ type: Number,
11
+ required: true,
12
+ default: 0
13
+ },
14
+ maxAmount: {
15
+ type: Number,
16
+ required: true,
17
+ default: 10000
18
+ },
19
+ gracePeriod: {
20
+ type: Number,
21
+ required: true,
22
+ default: 10
23
+ },
24
+ invoiceDay: {
25
+ type: Number,
26
+ required: true,
27
+ min: 0,
28
+ max: 30,
29
+ default: 3
30
+ },
31
+ enforcePayment: {
32
+ type: String,
33
+ enum: ['yes', 'no', ''],
34
+ default: ''
35
+ },
36
+ minimumPaymentAmount: {
37
+ type: Number,
38
+ default: 0
39
+ },
40
+ tariff: {
41
+ type: String,
42
+ enum: ['yes', 'no', ''],
43
+ default: ''
44
+ },
45
+ tariffAmount: {
46
+ type: Number,
47
+ default: 0
48
+ },
49
+ tariffAmountSmart: {
50
+ type: Number,
51
+ default: 0
52
+ },
53
+ fixedTariffAmount: {
54
+ type: Number,
55
+ default: 0
56
+ },
57
+ meterLoan: {
58
+ type: Number,
59
+ default: 0
60
+ },
61
+ notifications: {
62
+ type: Boolean,
63
+ default: false
64
+ },
65
+ dailyNotifications: {
66
+ type: Boolean,
67
+ default: false
68
+ },
69
+ weeklyNotifications: {
70
+ type: Boolean,
71
+ default: false
72
+ },
73
+ allNotifications: {
74
+ type: Boolean,
75
+ default: false
76
+ },
77
+ otherCharges: {
78
+ type: String,
79
+ enum: ['yes', 'no', ''],
80
+ default: ''
81
+ },
82
+ sewerageCharge: {
83
+ type: Number,
84
+ default: 0
85
+ },
86
+ fixedCharge: {
87
+ type: Number,
88
+ default: 0
89
+ },
90
+ vatPercentage: {
91
+ type: Number,
92
+ min: 0,
93
+ max: 100,
94
+ default: 0
95
+ }
96
+ }, {
97
+ timestamps: true
98
+ });
99
+
100
+ const WaterMeterSettings = mongoose.model('WaterMeterSettings', waterMeterSettingsSchema);
101
+
89
102
  module.exports = WaterMeterSettings;
@@ -1,16 +1,16 @@
1
- const mongoose = require('mongoose');
2
-
3
- const meterSizeSchema = new mongoose.Schema({
4
- code: {
5
- type: String,
6
- required: true,
7
- unique: true,
8
- trim: true, // Example: DN-15, DN-20, etc.
9
- }
10
- }, {
11
- timestamps: true
12
- });
13
-
14
- const MeterSize = mongoose.model('MeterSize', meterSizeSchema);
15
-
1
+ const mongoose = require('mongoose');
2
+
3
+ const meterSizeSchema = new mongoose.Schema({
4
+ code: {
5
+ type: String,
6
+ required: true,
7
+ unique: true,
8
+ trim: true, // Example: DN-15, DN-20, etc.
9
+ }
10
+ }, {
11
+ timestamps: true
12
+ });
13
+
14
+ const MeterSize = mongoose.model('MeterSize', meterSizeSchema);
15
+
16
16
  module.exports = MeterSize;
@@ -1,110 +1,110 @@
1
- const mongoose = require('mongoose');
2
-
3
- const waterMeterSchema = new mongoose.Schema({
4
- meterType: {
5
- type: String,
6
- required: true,
7
- enum: ['analog', 'smart']
8
- },
9
- meterNumber: {
10
- type: String,
11
- required: true,
12
- unique: true,
13
- trim: true,
14
- index: true
15
- },
16
- accountNumber: {
17
- type: String,
18
- required: true,
19
- unique: true,
20
- trim: true
21
- },
22
- facilityId: {
23
- type: mongoose.Schema.Types.ObjectId,
24
- ref: 'Facility',
25
- },
26
- unitId: {
27
- type: mongoose.Schema.Types.ObjectId,
28
- ref: 'Unit',
29
- },
30
- customerId: {
31
- type: mongoose.Schema.Types.ObjectId,
32
- ref: 'Customer',
33
- },
34
- manufacturer: {
35
- type: mongoose.Schema.Types.ObjectId,
36
- ref: 'MeterManufacturer',
37
- },
38
- protocol: {
39
- type: mongoose.Schema.Types.ObjectId,
40
- ref: 'MeterProtocol',
41
- },
42
- size: {
43
- type: mongoose.Schema.Types.ObjectId,
44
- ref: 'MeterSize',
45
- },
46
- initialReading: {
47
- type: Number,
48
- required: true,
49
- min: 0,
50
- default: 0
51
- },
52
- previousReading: {
53
- type: Number,
54
- min: 0,
55
- },
56
- currentReading: {
57
- type: Number,
58
- min: 0,
59
- default: 0
60
- },
61
- lastReadingDate: {
62
- type: Date,
63
- default: Date.now
64
- },
65
- readingHistory: [{
66
- previousReading: Number,
67
- currentReading: Number,
68
- readingDate: {
69
- type: Date,
70
- default: Date.now
71
- },
72
- readBy: String,
73
- consumption: Number
74
- }],
75
- status: {
76
- type: String,
77
- required: true,
78
- enum: ['open', 'closed', 'maintenance', 'faulty'],
79
- default: 'open',
80
- },
81
- customerType: {
82
- type: String,
83
- enum: ['postpaid', 'prepaid'],
84
- },
85
- isInstalled: {
86
- type: Boolean,
87
- default: false
88
- },
89
- valveType: { // Specific to smart meters
90
- type: String,
91
- enum: ['automatic', 'manual'],
92
- default: 'automatic'
93
- },
94
- accountBalance: { // Specific to smart meters
95
- type: Number,
96
- default: 0
97
- },
98
- negativeBalance: { // Specific to smart meters
99
- type: Number,
100
- default: 0
101
- },
102
- }, {
103
- timestamps: true
104
- });
105
-
106
- waterMeterSchema.index({ meterNumber: 1, status: 1 });
107
-
108
- const WaterMeter = mongoose.model('WaterMeter', waterMeterSchema);
109
-
110
- module.exports = WaterMeter;
1
+ const mongoose = require('mongoose');
2
+
3
+ const waterMeterSchema = new mongoose.Schema({
4
+ meterType: {
5
+ type: String,
6
+ required: true,
7
+ enum: ['analog', 'smart']
8
+ },
9
+ meterNumber: {
10
+ type: String,
11
+ required: true,
12
+ unique: true,
13
+ trim: true,
14
+ index: true
15
+ },
16
+ accountNumber: {
17
+ type: String,
18
+ required: true,
19
+ unique: true,
20
+ trim: true
21
+ },
22
+ facilityId: {
23
+ type: mongoose.Schema.Types.ObjectId,
24
+ ref: 'Facility',
25
+ },
26
+ unitId: {
27
+ type: mongoose.Schema.Types.ObjectId,
28
+ ref: 'Unit',
29
+ },
30
+ customerId: {
31
+ type: mongoose.Schema.Types.ObjectId,
32
+ ref: 'Customer',
33
+ },
34
+ manufacturer: {
35
+ type: mongoose.Schema.Types.ObjectId,
36
+ ref: 'MeterManufacturer',
37
+ },
38
+ protocol: {
39
+ type: mongoose.Schema.Types.ObjectId,
40
+ ref: 'MeterProtocol',
41
+ },
42
+ size: {
43
+ type: mongoose.Schema.Types.ObjectId,
44
+ ref: 'MeterSize',
45
+ },
46
+ initialReading: {
47
+ type: Number,
48
+ required: true,
49
+ min: 0,
50
+ default: 0
51
+ },
52
+ previousReading: {
53
+ type: Number,
54
+ min: 0,
55
+ },
56
+ currentReading: {
57
+ type: Number,
58
+ min: 0,
59
+ default: 0
60
+ },
61
+ lastReadingDate: {
62
+ type: Date,
63
+ default: Date.now
64
+ },
65
+ readingHistory: [{
66
+ previousReading: Number,
67
+ currentReading: Number,
68
+ readingDate: {
69
+ type: Date,
70
+ default: Date.now
71
+ },
72
+ readBy: String,
73
+ consumption: Number
74
+ }],
75
+ status: {
76
+ type: String,
77
+ required: true,
78
+ enum: ['open', 'closed', 'maintenance', 'faulty'],
79
+ default: 'open',
80
+ },
81
+ customerType: {
82
+ type: String,
83
+ enum: ['postpaid', 'prepaid'],
84
+ },
85
+ isInstalled: {
86
+ type: Boolean,
87
+ default: false
88
+ },
89
+ valveType: { // Specific to smart meters
90
+ type: String,
91
+ enum: ['automatic', 'manual'],
92
+ default: 'automatic'
93
+ },
94
+ accountBalance: { // Specific to smart meters
95
+ type: Number,
96
+ default: 0
97
+ },
98
+ negativeBalance: { // Specific to smart meters
99
+ type: Number,
100
+ default: 0
101
+ },
102
+ }, {
103
+ timestamps: true
104
+ });
105
+
106
+ waterMeterSchema.index({ meterNumber: 1, status: 1 });
107
+
108
+ const WaterMeter = mongoose.model('WaterMeter', waterMeterSchema);
109
+
110
+ module.exports = WaterMeter;