payservedb 6.6.3 → 6.6.5

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 (142) hide show
  1. package/.env +2 -2
  2. package/index.js +278 -276
  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/powerMeterCommunicationProtocol.js +18 -0
  76. package/src/models/powerMeterCustomerAccount.js +78 -78
  77. package/src/models/powerMeterCustomerBand.js +14 -14
  78. package/src/models/powerMeterDailyReading.js +30 -30
  79. package/src/models/powerMeterGateways.js +37 -0
  80. package/src/models/powerMeterMonthlyReading.js +34 -34
  81. package/src/models/powerMeterPowerCharges.js +53 -53
  82. package/src/models/powerMeterSettings.js +138 -138
  83. package/src/models/powerMeterSingleDayReading.js +32 -32
  84. package/src/models/powerMeters.js +97 -65
  85. package/src/models/powerMetersManufacturer.js +14 -14
  86. package/src/models/propertyManagerContract.js +556 -556
  87. package/src/models/propertyManagerRevenue.js +195 -195
  88. package/src/models/purchaseOrderInvoice.js +74 -74
  89. package/src/models/purchase_order.js +213 -213
  90. package/src/models/purchase_request.js +110 -110
  91. package/src/models/refresh_token.js +23 -23
  92. package/src/models/reminder.js +197 -197
  93. package/src/models/report.js +13 -13
  94. package/src/models/resident.js +121 -121
  95. package/src/models/rfq_details.js +131 -131
  96. package/src/models/rfq_response.js +153 -153
  97. package/src/models/service_charge_invoice_upload.js +42 -42
  98. package/src/models/service_charge_payments.js +27 -27
  99. package/src/models/servicerequest.js +55 -55
  100. package/src/models/settings.js +62 -62
  101. package/src/models/smart_meter_daily_consumption.js +44 -44
  102. package/src/models/sms_africastalking.js +20 -20
  103. package/src/models/sms_balance_notification.js +26 -26
  104. package/src/models/sms_meliora.js +20 -20
  105. package/src/models/staff.js +36 -36
  106. package/src/models/stocksandspare.js +161 -161
  107. package/src/models/suppliers.js +74 -74
  108. package/src/models/tickets.js +121 -121
  109. package/src/models/unitManagementTemplate.js +44 -44
  110. package/src/models/unitasset.js +25 -25
  111. package/src/models/units.js +117 -117
  112. package/src/models/user.js +186 -186
  113. package/src/models/valueaddedservices.js +79 -79
  114. package/src/models/vas_invoices_upload.js +50 -50
  115. package/src/models/vas_payments.js +24 -24
  116. package/src/models/vasinvoice.js +192 -192
  117. package/src/models/vasvendor.js +57 -57
  118. package/src/models/visitLog.js +86 -86
  119. package/src/models/visitor.js +67 -67
  120. package/src/models/waitlist.js +45 -45
  121. package/src/models/wallet.js +44 -44
  122. package/src/models/wallet_transactions.js +50 -50
  123. package/src/models/water_invoice.js +305 -305
  124. package/src/models/water_meter_Command_Queue.js +33 -33
  125. package/src/models/water_meter_account.js +78 -78
  126. package/src/models/water_meter_billing.js +58 -58
  127. package/src/models/water_meter_communication.js +17 -17
  128. package/src/models/water_meter_communication_logs.js +30 -30
  129. package/src/models/water_meter_concentrator.js +66 -66
  130. package/src/models/water_meter_daily_history.js +32 -32
  131. package/src/models/water_meter_iot_cards.js +34 -34
  132. package/src/models/water_meter_manufacturer.js +35 -35
  133. package/src/models/water_meter_monthly_history.js +36 -36
  134. package/src/models/water_meter_negative_amounts.js +38 -38
  135. package/src/models/water_meter_settings.js +180 -180
  136. package/src/models/water_meter_single_day_history.js +34 -34
  137. package/src/models/water_meter_size.js +15 -15
  138. package/src/models/water_meters.js +134 -134
  139. package/src/models/water_meters_delivery.js +76 -76
  140. package/src/models/water_prepaid_credit.js +47 -47
  141. package/src/models/water_prepaid_debit.js +50 -50
  142. package/src/models/workorder.js +49 -49
@@ -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,37 +1,37 @@
1
- const mongoose = require('mongoose');
2
-
3
- const monthlyWaterMeterHistorySchema = new mongoose.Schema({
4
- meterId: {
5
- type: mongoose.Schema.Types.ObjectId,
6
- ref: 'WaterMeter',
7
- required: true,
8
- index: true
9
- },
10
- yearMonth: {
11
- type: String,
12
- required: true
13
- },
14
- initialReading: {
15
- type: Number,
16
- required: true,
17
- min: 0
18
- },
19
- finalReading: {
20
- type: Number,
21
- required: true,
22
- min: 0
23
- },
24
- consumption: {
25
- type: Number,
26
- default: function() {
27
- return this.finalReading - this.initialReading;
28
- }
29
- }
30
- }, {
31
- timestamps: true
32
- });
33
-
34
- monthlyWaterMeterHistorySchema.index({ meterId: 1, yearMonth: 1 });
35
- const MonthlyWaterMeterHistory = mongoose.model('MonthlyWaterMeterHistory', monthlyWaterMeterHistorySchema);
36
-
1
+ const mongoose = require('mongoose');
2
+
3
+ const monthlyWaterMeterHistorySchema = new mongoose.Schema({
4
+ meterId: {
5
+ type: mongoose.Schema.Types.ObjectId,
6
+ ref: 'WaterMeter',
7
+ required: true,
8
+ index: true
9
+ },
10
+ yearMonth: {
11
+ type: String,
12
+ required: true
13
+ },
14
+ initialReading: {
15
+ type: Number,
16
+ required: true,
17
+ min: 0
18
+ },
19
+ finalReading: {
20
+ type: Number,
21
+ required: true,
22
+ min: 0
23
+ },
24
+ consumption: {
25
+ type: Number,
26
+ default: function() {
27
+ return this.finalReading - this.initialReading;
28
+ }
29
+ }
30
+ }, {
31
+ timestamps: true
32
+ });
33
+
34
+ monthlyWaterMeterHistorySchema.index({ meterId: 1, yearMonth: 1 });
35
+ const MonthlyWaterMeterHistory = mongoose.model('MonthlyWaterMeterHistory', monthlyWaterMeterHistorySchema);
36
+
37
37
  module.exports = MonthlyWaterMeterHistory;
@@ -1,39 +1,39 @@
1
- const mongoose = require('mongoose');
2
-
3
- const negativeBalanceSchema = new mongoose.Schema({
4
- customerId: {
5
- type: mongoose.Schema.Types.ObjectId,
6
- ref: 'Customer',
7
- required: true
8
- },
9
- accountId: {
10
- type: mongoose.Schema.Types.ObjectId,
11
- ref: 'WaterMeterAccount',
12
- required: true
13
- },
14
- customerName: {
15
- type: String,
16
- required: true,
17
- trim: true
18
- },
19
- meterNumber: {
20
- type: String,
21
- required: true,
22
- trim: true
23
- },
24
- amount: {
25
- type: Number,
26
- required: true
27
- },
28
- dateRecorded: {
29
- type: Date,
30
- required: true,
31
- default: Date.now
32
- }
33
- }, {
34
- timestamps: true
35
- });
36
-
37
- const NegativeBalance = mongoose.model('NegativeBalance', negativeBalanceSchema);
38
-
1
+ const mongoose = require('mongoose');
2
+
3
+ const negativeBalanceSchema = new mongoose.Schema({
4
+ customerId: {
5
+ type: mongoose.Schema.Types.ObjectId,
6
+ ref: 'Customer',
7
+ required: true
8
+ },
9
+ accountId: {
10
+ type: mongoose.Schema.Types.ObjectId,
11
+ ref: 'WaterMeterAccount',
12
+ required: true
13
+ },
14
+ customerName: {
15
+ type: String,
16
+ required: true,
17
+ trim: true
18
+ },
19
+ meterNumber: {
20
+ type: String,
21
+ required: true,
22
+ trim: true
23
+ },
24
+ amount: {
25
+ type: Number,
26
+ required: true
27
+ },
28
+ dateRecorded: {
29
+ type: Date,
30
+ required: true,
31
+ default: Date.now
32
+ }
33
+ }, {
34
+ timestamps: true
35
+ });
36
+
37
+ const NegativeBalance = mongoose.model('NegativeBalance', negativeBalanceSchema);
38
+
39
39
  module.exports = NegativeBalance;
@@ -1,181 +1,181 @@
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
- lowThreshold: {
20
- type: Number,
21
- },
22
- highThreshold: {
23
- type: Number,
24
- },
25
- gracePeriod: {
26
- type: Number,
27
- required: true,
28
- default: 10
29
- },
30
- invoiceDay: {
31
- type: Number,
32
- required: true,
33
- min: 0,
34
- max: 30,
35
- default: 3
36
- },
37
- enforcePayment: {
38
- type: String,
39
- enum: ['yes', 'no'],
40
- required: true,
41
- default: 'no'
42
- },
43
- minimumPaymentAmount: {
44
- type: Number,
45
- required: true,
46
- default: 0
47
- },
48
- tariff: {
49
- type: String,
50
- enum: ['yes', 'no'],
51
- required: true,
52
- default: 'no'
53
- },
54
- tariffAmount: {
55
- type: Number,
56
- required: true,
57
- default: 0
58
- },
59
- tariffAmountSmart: {
60
- type: Number,
61
- default: 0
62
- },
63
- fixedTariffAmount: {
64
- type: Number,
65
- required: true,
66
- default: 0
67
- },
68
- meterLoan: {
69
- type: Number,
70
- required: true,
71
- default: 0
72
- },
73
- notifications: {
74
- type: Boolean,
75
- default: false
76
- },
77
- dailyNotifications: {
78
- type: Boolean,
79
- default: false
80
- },
81
- weeklyNotifications: {
82
- type: Boolean,
83
- default: false
84
- },
85
- allNotifications: {
86
- type: Boolean,
87
- default: false
88
- },
89
- // PAYMENTS
90
- paymentMethods: {
91
- mobilePayment: {
92
- status: {
93
- type: Boolean,
94
- default: false
95
- },
96
- paymentId: {
97
- type: mongoose.Schema.Types.ObjectId,
98
- ref: 'FacilityPaymentDetails'
99
- }
100
- },
101
- bankPayment: {
102
- status: {
103
- type: Boolean,
104
- default: false
105
- },
106
- paymentId: {
107
- type: mongoose.Schema.Types.ObjectId,
108
- ref: 'BankDetails'
109
- }
110
- }
111
- },
112
-
113
- // Biller Address Information for Invoice Generation
114
- billerAddress: {
115
- name: {
116
- type: String,
117
- required: [true, "Biller name is required"],
118
- trim: true,
119
- minlength: [1, "Biller name must be at least 1 character long"],
120
- },
121
- email: {
122
- type: String,
123
- required: [true, "Biller email is required"],
124
- trim: true,
125
- lowercase: true,
126
- validate: {
127
- validator: function (v) {
128
- return /^\w+([\.-]?\w+)@\w+([\.-]?\w+)(\.\w{2,3})+$/.test(v);
129
- },
130
- message: "Please enter a valid email address"
131
- }
132
- },
133
- phone: {
134
- type: String,
135
- required: [true, "Biller phone is required"],
136
- trim: true,
137
- },
138
- address: {
139
- type: String,
140
- required: [true, "Biller address is required"],
141
- trim: true,
142
- },
143
- city: {
144
- type: String,
145
- required: [true, "Biller city is required"],
146
- trim: true,
147
- }
148
- },
149
- glAccounts: {
150
- invoice: {
151
- debit: {
152
- type: mongoose.Schema.Types.ObjectId,
153
- ref: "GLAccount",
154
- required: false,
155
- },
156
- credit: {
157
- type: mongoose.Schema.Types.ObjectId,
158
- ref: "GLAccount",
159
- required: false,
160
- }
161
- },
162
- payment: {
163
- debit: {
164
- type: mongoose.Schema.Types.ObjectId,
165
- ref: "GLAccount",
166
- required: false,
167
- },
168
- credit: {
169
- type: mongoose.Schema.Types.ObjectId,
170
- ref: "GLAccount",
171
- required: false,
172
- }
173
- }
174
- },
175
- }, {
176
- timestamps: true
177
- });
178
-
179
- const WaterMeterSettings = mongoose.model('WaterMeterSettings', waterMeterSettingsSchema);
180
-
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
+ lowThreshold: {
20
+ type: Number,
21
+ },
22
+ highThreshold: {
23
+ type: Number,
24
+ },
25
+ gracePeriod: {
26
+ type: Number,
27
+ required: true,
28
+ default: 10
29
+ },
30
+ invoiceDay: {
31
+ type: Number,
32
+ required: true,
33
+ min: 0,
34
+ max: 30,
35
+ default: 3
36
+ },
37
+ enforcePayment: {
38
+ type: String,
39
+ enum: ['yes', 'no'],
40
+ required: true,
41
+ default: 'no'
42
+ },
43
+ minimumPaymentAmount: {
44
+ type: Number,
45
+ required: true,
46
+ default: 0
47
+ },
48
+ tariff: {
49
+ type: String,
50
+ enum: ['yes', 'no'],
51
+ required: true,
52
+ default: 'no'
53
+ },
54
+ tariffAmount: {
55
+ type: Number,
56
+ required: true,
57
+ default: 0
58
+ },
59
+ tariffAmountSmart: {
60
+ type: Number,
61
+ default: 0
62
+ },
63
+ fixedTariffAmount: {
64
+ type: Number,
65
+ required: true,
66
+ default: 0
67
+ },
68
+ meterLoan: {
69
+ type: Number,
70
+ required: true,
71
+ default: 0
72
+ },
73
+ notifications: {
74
+ type: Boolean,
75
+ default: false
76
+ },
77
+ dailyNotifications: {
78
+ type: Boolean,
79
+ default: false
80
+ },
81
+ weeklyNotifications: {
82
+ type: Boolean,
83
+ default: false
84
+ },
85
+ allNotifications: {
86
+ type: Boolean,
87
+ default: false
88
+ },
89
+ // PAYMENTS
90
+ paymentMethods: {
91
+ mobilePayment: {
92
+ status: {
93
+ type: Boolean,
94
+ default: false
95
+ },
96
+ paymentId: {
97
+ type: mongoose.Schema.Types.ObjectId,
98
+ ref: 'FacilityPaymentDetails'
99
+ }
100
+ },
101
+ bankPayment: {
102
+ status: {
103
+ type: Boolean,
104
+ default: false
105
+ },
106
+ paymentId: {
107
+ type: mongoose.Schema.Types.ObjectId,
108
+ ref: 'BankDetails'
109
+ }
110
+ }
111
+ },
112
+
113
+ // Biller Address Information for Invoice Generation
114
+ billerAddress: {
115
+ name: {
116
+ type: String,
117
+ required: [true, "Biller name is required"],
118
+ trim: true,
119
+ minlength: [1, "Biller name must be at least 1 character long"],
120
+ },
121
+ email: {
122
+ type: String,
123
+ required: [true, "Biller email is required"],
124
+ trim: true,
125
+ lowercase: true,
126
+ validate: {
127
+ validator: function (v) {
128
+ return /^\w+([\.-]?\w+)@\w+([\.-]?\w+)(\.\w{2,3})+$/.test(v);
129
+ },
130
+ message: "Please enter a valid email address"
131
+ }
132
+ },
133
+ phone: {
134
+ type: String,
135
+ required: [true, "Biller phone is required"],
136
+ trim: true,
137
+ },
138
+ address: {
139
+ type: String,
140
+ required: [true, "Biller address is required"],
141
+ trim: true,
142
+ },
143
+ city: {
144
+ type: String,
145
+ required: [true, "Biller city is required"],
146
+ trim: true,
147
+ }
148
+ },
149
+ glAccounts: {
150
+ invoice: {
151
+ debit: {
152
+ type: mongoose.Schema.Types.ObjectId,
153
+ ref: "GLAccount",
154
+ required: false,
155
+ },
156
+ credit: {
157
+ type: mongoose.Schema.Types.ObjectId,
158
+ ref: "GLAccount",
159
+ required: false,
160
+ }
161
+ },
162
+ payment: {
163
+ debit: {
164
+ type: mongoose.Schema.Types.ObjectId,
165
+ ref: "GLAccount",
166
+ required: false,
167
+ },
168
+ credit: {
169
+ type: mongoose.Schema.Types.ObjectId,
170
+ ref: "GLAccount",
171
+ required: false,
172
+ }
173
+ }
174
+ },
175
+ }, {
176
+ timestamps: true
177
+ });
178
+
179
+ const WaterMeterSettings = mongoose.model('WaterMeterSettings', waterMeterSettingsSchema);
180
+
181
181
  module.exports = WaterMeterSettings;
@@ -1,35 +1,35 @@
1
- const mongoose = require('mongoose');
2
-
3
- const singleDayWaterMeterHistorySchema = 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: String,
12
- required: true
13
- },
14
- reading: {
15
- type: Number,
16
- required: true,
17
- min: 0
18
- },
19
- status: {
20
- type: String,
21
- enum: ['opened', 'closed', 'maintenance', 'faulty'],
22
- default: 'opened',
23
- },
24
- time: {
25
- type: String,
26
- required: true
27
- }
28
- }, {
29
- timestamps: true
30
- });
31
-
32
- singleDayWaterMeterHistorySchema.index({ meterId: 1, date: 1 });
33
- const SingleDayWaterMeterHistory = mongoose.model('SingleDayWaterMeterHistory', singleDayWaterMeterHistorySchema);
34
-
1
+ const mongoose = require('mongoose');
2
+
3
+ const singleDayWaterMeterHistorySchema = 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: String,
12
+ required: true
13
+ },
14
+ reading: {
15
+ type: Number,
16
+ required: true,
17
+ min: 0
18
+ },
19
+ status: {
20
+ type: String,
21
+ enum: ['opened', 'closed', 'maintenance', 'faulty'],
22
+ default: 'opened',
23
+ },
24
+ time: {
25
+ type: String,
26
+ required: true
27
+ }
28
+ }, {
29
+ timestamps: true
30
+ });
31
+
32
+ singleDayWaterMeterHistorySchema.index({ meterId: 1, date: 1 });
33
+ const SingleDayWaterMeterHistory = mongoose.model('SingleDayWaterMeterHistory', singleDayWaterMeterHistorySchema);
34
+
35
35
  module.exports = SingleDayWaterMeterHistory;
@@ -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;