payservedb 6.6.2 → 6.6.4

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 (141) hide show
  1. package/.env +2 -2
  2. package/index.js +277 -277
  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 +92 -92
  10. package/src/models/assetsAssignment.js +64 -64
  11. package/src/models/auditTrail.js +346 -346
  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 +122 -122
  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 +94 -94
  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 -208
  34. package/src/models/dailyChecklist.js +312 -312
  35. package/src/models/default_payment_details.js +17 -17
  36. package/src/models/deliveryTimeMarks.js +18 -18
  37. package/src/models/dutyRosterChecklist.js +250 -250
  38. package/src/models/dutyroster.js +136 -136
  39. package/src/models/email.js +37 -37
  40. package/src/models/email_sms_queue.js +61 -61
  41. package/src/models/entry_exit.js +53 -53
  42. package/src/models/expense.js +99 -99
  43. package/src/models/expense_category.js +45 -45
  44. package/src/models/facility.js +61 -61
  45. package/src/models/facilityWalletTransactionsMetadata.js +236 -236
  46. package/src/models/facility_departements.js +20 -20
  47. package/src/models/facility_payment_details.js +20 -20
  48. package/src/models/facilityasset.js +25 -25
  49. package/src/models/faq.js +18 -18
  50. package/src/models/gl_account_double_entries.js +25 -25
  51. package/src/models/gl_accounts.js +56 -56
  52. package/src/models/gl_entries.js +49 -49
  53. package/src/models/goodsReceivedNotes.js +115 -115
  54. package/src/models/guard.js +47 -47
  55. package/src/models/handover.js +246 -246
  56. package/src/models/invoice.js +336 -336
  57. package/src/models/item_inspection.js +67 -67
  58. package/src/models/leaseagreement.js +226 -226
  59. package/src/models/leasetemplate.js +17 -17
  60. package/src/models/levy.js +206 -206
  61. package/src/models/levy_invoice_settings.js +26 -26
  62. package/src/models/levycontract.js +117 -117
  63. package/src/models/levytype.js +23 -23
  64. package/src/models/maintenance_service_vendor.js +38 -38
  65. package/src/models/maintenance_services.js +17 -17
  66. package/src/models/maintenancerequisition.js +31 -31
  67. package/src/models/master_workplan.js +32 -32
  68. package/src/models/master_workplan_child.js +34 -34
  69. package/src/models/message.js +38 -38
  70. package/src/models/module.js +21 -21
  71. package/src/models/notification.js +44 -44
  72. package/src/models/paymentTermsMarks.js +19 -19
  73. package/src/models/penalty.js +76 -76
  74. package/src/models/pendingCredentials.js +32 -32
  75. package/src/models/powerMeterCustomerAccount.js +78 -78
  76. package/src/models/powerMeterCustomerBand.js +14 -14
  77. package/src/models/powerMeterDailyReading.js +30 -30
  78. package/src/models/powerMeterGateways.js +37 -0
  79. package/src/models/powerMeterMonthlyReading.js +34 -34
  80. package/src/models/powerMeterPowerCharges.js +53 -53
  81. package/src/models/powerMeterSettings.js +138 -138
  82. package/src/models/powerMeterSingleDayReading.js +32 -32
  83. package/src/models/powerMeters.js +93 -65
  84. package/src/models/powerMetersManufacturer.js +14 -14
  85. package/src/models/propertyManagerContract.js +556 -556
  86. package/src/models/propertyManagerRevenue.js +195 -195
  87. package/src/models/purchaseOrderInvoice.js +74 -74
  88. package/src/models/purchase_order.js +213 -213
  89. package/src/models/purchase_request.js +110 -110
  90. package/src/models/refresh_token.js +23 -23
  91. package/src/models/reminder.js +197 -197
  92. package/src/models/report.js +13 -13
  93. package/src/models/resident.js +121 -121
  94. package/src/models/rfq_details.js +131 -131
  95. package/src/models/rfq_response.js +153 -153
  96. package/src/models/service_charge_invoice_upload.js +42 -42
  97. package/src/models/service_charge_payments.js +27 -27
  98. package/src/models/servicerequest.js +55 -55
  99. package/src/models/settings.js +62 -62
  100. package/src/models/smart_meter_daily_consumption.js +44 -44
  101. package/src/models/sms_africastalking.js +20 -20
  102. package/src/models/sms_balance_notification.js +26 -26
  103. package/src/models/sms_meliora.js +20 -20
  104. package/src/models/staff.js +36 -36
  105. package/src/models/stocksandspare.js +161 -161
  106. package/src/models/suppliers.js +74 -74
  107. package/src/models/tickets.js +121 -121
  108. package/src/models/unitManagementTemplate.js +44 -44
  109. package/src/models/unitasset.js +25 -25
  110. package/src/models/units.js +117 -117
  111. package/src/models/user.js +186 -186
  112. package/src/models/valueaddedservices.js +79 -79
  113. package/src/models/vas_invoices_upload.js +50 -50
  114. package/src/models/vas_payments.js +24 -24
  115. package/src/models/vasinvoice.js +192 -192
  116. package/src/models/vasvendor.js +57 -57
  117. package/src/models/visitLog.js +86 -86
  118. package/src/models/visitor.js +67 -67
  119. package/src/models/waitlist.js +45 -45
  120. package/src/models/wallet.js +44 -44
  121. package/src/models/wallet_transactions.js +50 -50
  122. package/src/models/water_invoice.js +305 -305
  123. package/src/models/water_meter_Command_Queue.js +33 -33
  124. package/src/models/water_meter_account.js +78 -78
  125. package/src/models/water_meter_billing.js +58 -58
  126. package/src/models/water_meter_communication.js +17 -17
  127. package/src/models/water_meter_communication_logs.js +30 -30
  128. package/src/models/water_meter_concentrator.js +66 -66
  129. package/src/models/water_meter_daily_history.js +32 -32
  130. package/src/models/water_meter_iot_cards.js +34 -34
  131. package/src/models/water_meter_manufacturer.js +35 -35
  132. package/src/models/water_meter_monthly_history.js +36 -36
  133. package/src/models/water_meter_negative_amounts.js +38 -38
  134. package/src/models/water_meter_settings.js +180 -180
  135. package/src/models/water_meter_single_day_history.js +34 -34
  136. package/src/models/water_meter_size.js +15 -15
  137. package/src/models/water_meters.js +134 -134
  138. package/src/models/water_meters_delivery.js +76 -76
  139. package/src/models/water_prepaid_credit.js +47 -47
  140. package/src/models/water_prepaid_debit.js +50 -50
  141. package/src/models/workorder.js +49 -49
@@ -1,21 +1,21 @@
1
- const mongoose = require('mongoose');
2
-
3
- // Define the schema for modules
4
- const moduleSchema = new mongoose.Schema({
5
- name: {
6
- type: String,
7
- required: [true, 'Module name is required'],
8
- trim: true,
9
- unique: true // Ensure module name is unique
10
- }
11
- }, {
12
- timestamps: true // Automatically add createdAt and updatedAt fields
13
- });
14
-
15
- // Indexes for improved performance
16
- moduleSchema.index({ name: 1 });
17
-
18
- // Compile the model from the schema
19
- const Module = mongoose.model('Module', moduleSchema);
20
-
21
- module.exports = Module;
1
+ const mongoose = require('mongoose');
2
+
3
+ // Define the schema for modules
4
+ const moduleSchema = new mongoose.Schema({
5
+ name: {
6
+ type: String,
7
+ required: [true, 'Module name is required'],
8
+ trim: true,
9
+ unique: true // Ensure module name is unique
10
+ }
11
+ }, {
12
+ timestamps: true // Automatically add createdAt and updatedAt fields
13
+ });
14
+
15
+ // Indexes for improved performance
16
+ moduleSchema.index({ name: 1 });
17
+
18
+ // Compile the model from the schema
19
+ const Module = mongoose.model('Module', moduleSchema);
20
+
21
+ module.exports = Module;
@@ -1,44 +1,44 @@
1
- const mongoose = require("mongoose");
2
-
3
- // Define the schema for Notifications
4
- const notificationSchema = new mongoose.Schema(
5
- {
6
- userId: {
7
- type: mongoose.Schema.Types.ObjectId,
8
- ref: "User",
9
- required: true,
10
- },
11
- facilityId: {
12
- type: mongoose.Schema.Types.ObjectId,
13
- ref: "Facility",
14
- required: true,
15
- },
16
- message: {
17
- type: String,
18
- required: true,
19
- },
20
- read: {
21
- type: Boolean,
22
- default: false,
23
- },
24
- dateRead: {
25
- type: Date,
26
- default: null,
27
- },
28
- dateUpdated: {
29
- type: Date,
30
- default: null,
31
- },
32
- dateSent: {
33
- type: Date,
34
- required: true,
35
- },
36
- },
37
- {
38
- timestamps: true,
39
- },
40
- );
41
-
42
- const Notification = mongoose.model("Notification", notificationSchema);
43
-
44
- module.exports = Notification;
1
+ const mongoose = require("mongoose");
2
+
3
+ // Define the schema for Notifications
4
+ const notificationSchema = new mongoose.Schema(
5
+ {
6
+ userId: {
7
+ type: mongoose.Schema.Types.ObjectId,
8
+ ref: "User",
9
+ required: true,
10
+ },
11
+ facilityId: {
12
+ type: mongoose.Schema.Types.ObjectId,
13
+ ref: "Facility",
14
+ required: true,
15
+ },
16
+ message: {
17
+ type: String,
18
+ required: true,
19
+ },
20
+ read: {
21
+ type: Boolean,
22
+ default: false,
23
+ },
24
+ dateRead: {
25
+ type: Date,
26
+ default: null,
27
+ },
28
+ dateUpdated: {
29
+ type: Date,
30
+ default: null,
31
+ },
32
+ dateSent: {
33
+ type: Date,
34
+ required: true,
35
+ },
36
+ },
37
+ {
38
+ timestamps: true,
39
+ },
40
+ );
41
+
42
+ const Notification = mongoose.model("Notification", notificationSchema);
43
+
44
+ module.exports = Notification;
@@ -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,78 +1,78 @@
1
- const mongoose = require('mongoose');
2
-
3
- const waterMeterCustomerAccountSchema = new mongoose.Schema({
4
- facilityId: {
5
- type: mongoose.Schema.Types.ObjectId,
6
- ref: 'Facility',
7
- required: true,
8
- },
9
- account_no: {
10
- type: String,
11
- required: true,
12
- trim: true
13
- },
14
- customerId: {
15
- type: mongoose.Schema.Types.ObjectId,
16
- ref: 'Customer',
17
- },
18
- customerName: {
19
- type: String,
20
- required: true,
21
- trim: true
22
- },
23
- phoneNumber: {
24
- type: String,
25
- required: true,
26
- trim: true
27
- },
28
- email: {
29
- type: String,
30
- required: true,
31
- trim: true
32
- },
33
- serialNumber: {
34
- type: String,
35
- required: true,
36
- unique: true,
37
- trim: true
38
- },
39
- unitId: {
40
- type: mongoose.Schema.Types.ObjectId,
41
- ref: 'Unit',
42
- },
43
- payment_type: {
44
- type: String,
45
- required: true,
46
- enum: ['Postpaid', 'Prepaid']
47
- },
48
- previousReading: {
49
- type: Number,
50
- required: true,
51
- default: 0
52
- },
53
- currentReading: {
54
- type: Number,
55
- required: true
56
- },
57
- status: {
58
- type: String,
59
- required: true,
60
- enum: ['Active', 'Inactive'],
61
- default: 'Active'
62
- },
63
- created_on: {
64
- type: Date,
65
- required: true,
66
- default: Date.now
67
- },
68
- meter_id: {
69
- type: mongoose.Schema.Types.ObjectId,
70
- ref: 'PowerMeter',
71
- }
72
- }, {
73
- timestamps: true
74
- });
75
-
76
- const PowerMeterCustomerAccount = mongoose.model('PowerMeterCustomerAccount', waterMeterCustomerAccountSchema);
77
-
78
- module.exports = PowerMeterCustomerAccount;
1
+ const mongoose = require('mongoose');
2
+
3
+ const waterMeterCustomerAccountSchema = new mongoose.Schema({
4
+ facilityId: {
5
+ type: mongoose.Schema.Types.ObjectId,
6
+ ref: 'Facility',
7
+ required: true,
8
+ },
9
+ account_no: {
10
+ type: String,
11
+ required: true,
12
+ trim: true
13
+ },
14
+ customerId: {
15
+ type: mongoose.Schema.Types.ObjectId,
16
+ ref: 'Customer',
17
+ },
18
+ customerName: {
19
+ type: String,
20
+ required: true,
21
+ trim: true
22
+ },
23
+ phoneNumber: {
24
+ type: String,
25
+ required: true,
26
+ trim: true
27
+ },
28
+ email: {
29
+ type: String,
30
+ required: true,
31
+ trim: true
32
+ },
33
+ serialNumber: {
34
+ type: String,
35
+ required: true,
36
+ unique: true,
37
+ trim: true
38
+ },
39
+ unitId: {
40
+ type: mongoose.Schema.Types.ObjectId,
41
+ ref: 'Unit',
42
+ },
43
+ payment_type: {
44
+ type: String,
45
+ required: true,
46
+ enum: ['Postpaid', 'Prepaid']
47
+ },
48
+ previousReading: {
49
+ type: Number,
50
+ required: true,
51
+ default: 0
52
+ },
53
+ currentReading: {
54
+ type: Number,
55
+ required: true
56
+ },
57
+ status: {
58
+ type: String,
59
+ required: true,
60
+ enum: ['Active', 'Inactive'],
61
+ default: 'Active'
62
+ },
63
+ created_on: {
64
+ type: Date,
65
+ required: true,
66
+ default: Date.now
67
+ },
68
+ meter_id: {
69
+ type: mongoose.Schema.Types.ObjectId,
70
+ ref: 'PowerMeter',
71
+ }
72
+ }, {
73
+ timestamps: true
74
+ });
75
+
76
+ const PowerMeterCustomerAccount = mongoose.model('PowerMeterCustomerAccount', waterMeterCustomerAccountSchema);
77
+
78
+ module.exports = PowerMeterCustomerAccount;
@@ -1,14 +1,14 @@
1
- const mongoose = require('mongoose');
2
-
3
- const powerMeterCustomerBandSchema = new mongoose.Schema({
4
- name: {
5
- type: String,
6
- required: true
7
- }
8
- }, {
9
- timestamps: true
10
- });
11
-
12
- const PowerMeterCustomerBand = mongoose.model('PowerMeterCustomerBand', powerMeterCustomerBandSchema);
13
-
14
- module.exports = PowerMeterCustomerBand;
1
+ const mongoose = require('mongoose');
2
+
3
+ const powerMeterCustomerBandSchema = new mongoose.Schema({
4
+ name: {
5
+ type: String,
6
+ required: true
7
+ }
8
+ }, {
9
+ timestamps: true
10
+ });
11
+
12
+ const PowerMeterCustomerBand = mongoose.model('PowerMeterCustomerBand', powerMeterCustomerBandSchema);
13
+
14
+ module.exports = PowerMeterCustomerBand;
@@ -1,31 +1,31 @@
1
- const mongoose = require('mongoose');
2
-
3
- const powerMeterDailyReadingSchema = new mongoose.Schema({
4
- meterId: {
5
- type: mongoose.Schema.Types.ObjectId,
6
- ref: 'WaterMeter',
7
- required: true,
8
- index: true
9
- },
10
- date: {
11
- type: Date,
12
- required: true,
13
- index: true
14
- },
15
- reading: {
16
- type: Number,
17
- required: true,
18
- min: 0
19
- },
20
- status: {
21
- type: String,
22
- enum: ['on', 'off', 'maintenance', 'faulty'],
23
- default: 'on',
24
- }
25
- }, {
26
- timestamps: true
27
- });
28
-
29
- const PowerMeterDailyReading = mongoose.model('PowerMeter', powerMeterDailyReadingSchema);
30
-
1
+ const mongoose = require('mongoose');
2
+
3
+ const powerMeterDailyReadingSchema = new mongoose.Schema({
4
+ meterId: {
5
+ type: mongoose.Schema.Types.ObjectId,
6
+ ref: 'WaterMeter',
7
+ required: true,
8
+ index: true
9
+ },
10
+ date: {
11
+ type: Date,
12
+ required: true,
13
+ index: true
14
+ },
15
+ reading: {
16
+ type: Number,
17
+ required: true,
18
+ min: 0
19
+ },
20
+ status: {
21
+ type: String,
22
+ enum: ['on', 'off', 'maintenance', 'faulty'],
23
+ default: 'on',
24
+ }
25
+ }, {
26
+ timestamps: true
27
+ });
28
+
29
+ const PowerMeterDailyReading = mongoose.model('PowerMeter', powerMeterDailyReadingSchema);
30
+
31
31
  module.exports = PowerMeterDailyReading;
@@ -0,0 +1,37 @@
1
+ const mongoose = require('mongoose');
2
+
3
+ const powerMeterGatewaySchema = new mongoose.Schema({
4
+ facilityId: {
5
+ type: mongoose.Schema.Types.ObjectId,
6
+ ref: 'Facility',
7
+ required: true
8
+ },
9
+ gatewayName: {
10
+ type: String,
11
+ required: true
12
+ },
13
+ gatewayNumber: {
14
+ type: Number,
15
+ required: false
16
+
17
+ },
18
+ location: {
19
+ type: String,
20
+ required: true
21
+
22
+ },
23
+ type: {
24
+ type: String,
25
+ trim: true
26
+ },
27
+ status: {
28
+ type: String,
29
+ required: true
30
+ }
31
+ }, {
32
+ timestamps: true
33
+ });
34
+
35
+ const PowerMeterGateway = mongoose.model('PowerMeterGateway', powerMeterGatewaySchema);
36
+
37
+ module.exports = PowerMeterGateway;