payservedb 4.1.9 → 4.2.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 (81) hide show
  1. package/.env +2 -2
  2. package/index.js +151 -151
  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/analog_water_meter.js +68 -68
  7. package/src/models/apilog.js +18 -18
  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/budget.js +33 -33
  14. package/src/models/budgetCategory.js +19 -19
  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 +209 -204
  33. package/src/models/leaseagreement.js +162 -162
  34. package/src/models/leasetemplate.js +17 -17
  35. package/src/models/levy.js +72 -72
  36. package/src/models/levy_invoice_settings.js +26 -26
  37. package/src/models/levycontract.js +65 -60
  38. package/src/models/levytype.js +23 -23
  39. package/src/models/maintenance_service_vendor.js +38 -38
  40. package/src/models/maintenance_services.js +17 -17
  41. package/src/models/maintenancerequisition.js +31 -31
  42. package/src/models/message.js +38 -38
  43. package/src/models/module.js +21 -21
  44. package/src/models/notification.js +24 -24
  45. package/src/models/penalty.js +76 -76
  46. package/src/models/refresh_token.js +23 -23
  47. package/src/models/reminder.js +161 -161
  48. package/src/models/report.js +13 -13
  49. package/src/models/resident.js +121 -121
  50. package/src/models/service_charge_invoice_upload.js +42 -42
  51. package/src/models/service_charge_payments.js +27 -27
  52. package/src/models/servicerequest.js +55 -55
  53. package/src/models/settings.js +62 -62
  54. package/src/models/smart_meter_daily_consumption.js +44 -44
  55. package/src/models/smart_water_meter.js +85 -85
  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/user_account.js +80 -80
  65. package/src/models/valueaddedservices.js +36 -36
  66. package/src/models/vas_invoices_upload.js +50 -50
  67. package/src/models/vas_payments.js +24 -24
  68. package/src/models/vasinvoice.js +159 -159
  69. package/src/models/vasvendor.js +57 -57
  70. package/src/models/visitLog.js +86 -86
  71. package/src/models/visitor.js +63 -63
  72. package/src/models/waitlist.js +45 -45
  73. package/src/models/water_invoice.js +192 -192
  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 +84 -84
  79. package/src/models/water_meter_size.js +15 -15
  80. package/src/models/water_meters_delivery.js +76 -76
  81. package/src/models/workorder.js +49 -49
@@ -1,60 +1,60 @@
1
- const mongoose = require('mongoose');
2
- const concentratorSchema = new mongoose.Schema({
3
- serialNumber: {
4
- type: String,
5
- required: true,
6
- trim: true,
7
- unique: true
8
- },
9
- manufacturer: {
10
- type: mongoose.Schema.Types.ObjectId,
11
- ref: 'MeterManufacturer',
12
- },
13
- range: {
14
- type: Number,
15
- min: 0
16
- },
17
- isInstalled: {
18
- type: Boolean,
19
- default: false
20
- },
21
- isFaulty: {
22
- type: Boolean,
23
- default: false
24
- },
25
- inStock: {
26
- type: Boolean,
27
- default: true
28
- },
29
- status: {
30
- type: String,
31
- required: true,
32
- enum: ['Online', 'Offline', 'Maintenance'],
33
- default: 'Offline'
34
- },
35
- facilityId: [{
36
- type: mongoose.Schema.Types.ObjectId,
37
- ref: 'Facility',
38
- }],
39
- location: {
40
- city: {
41
- type: String,
42
- trim: true
43
- },
44
- latitude: {
45
- type: Number,
46
- min: -90,
47
- max: 90
48
- },
49
- longitude: {
50
- type: Number,
51
- min: -180,
52
- max: 180
53
- }
54
- }
55
- }, {
56
- timestamps: true
57
- });
58
-
59
- const Concentrator = mongoose.model('Concentrator', concentratorSchema);
1
+ const mongoose = require('mongoose');
2
+ const concentratorSchema = new mongoose.Schema({
3
+ serialNumber: {
4
+ type: String,
5
+ required: true,
6
+ trim: true,
7
+ unique: true
8
+ },
9
+ manufacturer: {
10
+ type: mongoose.Schema.Types.ObjectId,
11
+ ref: 'MeterManufacturer',
12
+ },
13
+ range: {
14
+ type: Number,
15
+ min: 0
16
+ },
17
+ isInstalled: {
18
+ type: Boolean,
19
+ default: false
20
+ },
21
+ isFaulty: {
22
+ type: Boolean,
23
+ default: false
24
+ },
25
+ inStock: {
26
+ type: Boolean,
27
+ default: true
28
+ },
29
+ status: {
30
+ type: String,
31
+ required: true,
32
+ enum: ['Online', 'Offline', 'Maintenance'],
33
+ default: 'Offline'
34
+ },
35
+ facilityId: [{
36
+ type: mongoose.Schema.Types.ObjectId,
37
+ ref: 'Facility',
38
+ }],
39
+ location: {
40
+ city: {
41
+ type: String,
42
+ trim: true
43
+ },
44
+ latitude: {
45
+ type: Number,
46
+ min: -90,
47
+ max: 90
48
+ },
49
+ longitude: {
50
+ type: Number,
51
+ min: -180,
52
+ max: 180
53
+ }
54
+ }
55
+ }, {
56
+ timestamps: true
57
+ });
58
+
59
+ const Concentrator = mongoose.model('Concentrator', concentratorSchema);
60
60
  module.exports = Concentrator;
@@ -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,85 +1,85 @@
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
- notifications: {
63
- type: Boolean,
64
- default: false
65
- },
66
- // New fields for notification periods
67
- dailyNotifications: {
68
- type: Boolean,
69
- default: false
70
- },
71
- weeklyNotifications: {
72
- type: Boolean,
73
- default: false
74
- },
75
- allNotifications: {
76
- type: Boolean,
77
- default: false
78
- }
79
- }, {
80
- timestamps: true
81
- });
82
-
83
- const WaterMeterSettings = mongoose.model('WaterMeterSettings', waterMeterSettingsSchema);
84
-
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
+ notifications: {
63
+ type: Boolean,
64
+ default: false
65
+ },
66
+ // New fields for notification periods
67
+ dailyNotifications: {
68
+ type: Boolean,
69
+ default: false
70
+ },
71
+ weeklyNotifications: {
72
+ type: Boolean,
73
+ default: false
74
+ },
75
+ allNotifications: {
76
+ type: Boolean,
77
+ default: false
78
+ }
79
+ }, {
80
+ timestamps: true
81
+ });
82
+
83
+ const WaterMeterSettings = mongoose.model('WaterMeterSettings', waterMeterSettingsSchema);
84
+
85
85
  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,77 +1,77 @@
1
- const mongoose = require('mongoose');
2
-
3
- const deliverySchema = new mongoose.Schema({
4
- facilityId: {
5
- type: mongoose.Schema.Types.ObjectId,
6
- ref: 'Facility',
7
- required: true
8
- },
9
- facilityName: {
10
- type: String,
11
- required: true,
12
- trim: true
13
- },
14
- deliveryNumber: {
15
- type: String,
16
- required: true,
17
- unique: true
18
- },
19
- deliveredBy: {
20
- type: String,
21
- required: true,
22
- trim: true
23
- },
24
- receivedBy: {
25
- type: String,
26
- trim: true
27
- },
28
- deliveryDate: {
29
- type: Date,
30
- required: true
31
- },
32
- notes: {
33
- type: String,
34
- trim: true
35
- },
36
- postNotes: {
37
- type: String,
38
- trim: true
39
- },
40
- fileUrl: {
41
- type: String,
42
- trim: true
43
- },
44
- concentrators: [{
45
- concentratorId: {
46
- type: mongoose.Schema.Types.ObjectId,
47
- ref: 'Concentrator',
48
- required: true
49
- },
50
- serialNumber: {
51
- type: String,
52
- required: true
53
- }
54
- }],
55
- meters: [{
56
- meterId: {
57
- type: mongoose.Schema.Types.ObjectId,
58
- ref: 'Meter',
59
- required: true
60
- },
61
- serialNumber: {
62
- type: String,
63
- required: true
64
- }
65
- }],
66
- status: {
67
- type: String,
68
- enum: ['pending', 'completed', 'cancelled'],
69
- default: 'pending'
70
- }
71
- }, {
72
- timestamps: true
73
- });
74
-
75
- const MetersDelivery = mongoose.model('MetersDelivery', deliverySchema);
76
-
1
+ const mongoose = require('mongoose');
2
+
3
+ const deliverySchema = new mongoose.Schema({
4
+ facilityId: {
5
+ type: mongoose.Schema.Types.ObjectId,
6
+ ref: 'Facility',
7
+ required: true
8
+ },
9
+ facilityName: {
10
+ type: String,
11
+ required: true,
12
+ trim: true
13
+ },
14
+ deliveryNumber: {
15
+ type: String,
16
+ required: true,
17
+ unique: true
18
+ },
19
+ deliveredBy: {
20
+ type: String,
21
+ required: true,
22
+ trim: true
23
+ },
24
+ receivedBy: {
25
+ type: String,
26
+ trim: true
27
+ },
28
+ deliveryDate: {
29
+ type: Date,
30
+ required: true
31
+ },
32
+ notes: {
33
+ type: String,
34
+ trim: true
35
+ },
36
+ postNotes: {
37
+ type: String,
38
+ trim: true
39
+ },
40
+ fileUrl: {
41
+ type: String,
42
+ trim: true
43
+ },
44
+ concentrators: [{
45
+ concentratorId: {
46
+ type: mongoose.Schema.Types.ObjectId,
47
+ ref: 'Concentrator',
48
+ required: true
49
+ },
50
+ serialNumber: {
51
+ type: String,
52
+ required: true
53
+ }
54
+ }],
55
+ meters: [{
56
+ meterId: {
57
+ type: mongoose.Schema.Types.ObjectId,
58
+ ref: 'Meter',
59
+ required: true
60
+ },
61
+ serialNumber: {
62
+ type: String,
63
+ required: true
64
+ }
65
+ }],
66
+ status: {
67
+ type: String,
68
+ enum: ['pending', 'completed', 'cancelled'],
69
+ default: 'pending'
70
+ }
71
+ }, {
72
+ timestamps: true
73
+ });
74
+
75
+ const MetersDelivery = mongoose.model('MetersDelivery', deliverySchema);
76
+
77
77
  module.exports = MetersDelivery;