payservedb 6.5.5 → 6.5.7

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 (140) 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 +319 -319
  12. package/src/models/auditlog.js +83 -83
  13. package/src/models/bankdetails.js +40 -40
  14. package/src/models/billerAddress.js +119 -119
  15. package/src/models/booking_invoice.js +151 -151
  16. package/src/models/bookinganalytics.js +63 -63
  17. package/src/models/bookingconfig.js +45 -45
  18. package/src/models/bookingproperty.js +122 -122
  19. package/src/models/bookingreservation.js +192 -192
  20. package/src/models/bookingrevenuerecord.js +84 -84
  21. package/src/models/budget.js +95 -95
  22. package/src/models/budgetCategory.js +19 -19
  23. package/src/models/campaigns.js +94 -94
  24. package/src/models/cashpayment.js +264 -264
  25. package/src/models/combinedUnits.js +62 -62
  26. package/src/models/common_area_electricity.js +38 -38
  27. package/src/models/common_area_generator.js +41 -41
  28. package/src/models/common_area_utility_alert.js +37 -37
  29. package/src/models/common_area_water.js +39 -39
  30. package/src/models/communication_status.js +33 -33
  31. package/src/models/company.js +53 -53
  32. package/src/models/country_tax.js +42 -42
  33. package/src/models/currency_settings.js +39 -39
  34. package/src/models/customer.js +208 -208
  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/powerMeterMonthlyReading.js +34 -34
  79. package/src/models/powerMeterPowerCharges.js +53 -53
  80. package/src/models/powerMeterSettings.js +138 -138
  81. package/src/models/powerMeterSingleDayReading.js +32 -32
  82. package/src/models/powerMeters.js +65 -65
  83. package/src/models/powerMetersManufacturer.js +14 -14
  84. package/src/models/propertyManagerContract.js +556 -556
  85. package/src/models/propertyManagerRevenue.js +195 -195
  86. package/src/models/purchaseOrderInvoice.js +74 -74
  87. package/src/models/purchase_order.js +213 -213
  88. package/src/models/purchase_request.js +110 -110
  89. package/src/models/refresh_token.js +23 -23
  90. package/src/models/reminder.js +197 -197
  91. package/src/models/report.js +13 -13
  92. package/src/models/resident.js +121 -121
  93. package/src/models/rfq_details.js +131 -131
  94. package/src/models/rfq_response.js +153 -153
  95. package/src/models/service_charge_invoice_upload.js +42 -42
  96. package/src/models/service_charge_payments.js +27 -27
  97. package/src/models/servicerequest.js +55 -55
  98. package/src/models/settings.js +62 -62
  99. package/src/models/smart_meter_daily_consumption.js +44 -44
  100. package/src/models/sms_africastalking.js +20 -20
  101. package/src/models/sms_balance_notification.js +26 -26
  102. package/src/models/sms_meliora.js +20 -20
  103. package/src/models/staff.js +36 -36
  104. package/src/models/stocksandspare.js +161 -161
  105. package/src/models/suppliers.js +74 -74
  106. package/src/models/tickets.js +121 -121
  107. package/src/models/unitManagementTemplate.js +44 -44
  108. package/src/models/unitasset.js +25 -25
  109. package/src/models/units.js +117 -117
  110. package/src/models/user.js +186 -186
  111. package/src/models/valueaddedservices.js +79 -79
  112. package/src/models/vas_invoices_upload.js +50 -50
  113. package/src/models/vas_payments.js +24 -24
  114. package/src/models/vasinvoice.js +192 -192
  115. package/src/models/vasvendor.js +57 -57
  116. package/src/models/visitLog.js +86 -86
  117. package/src/models/visitor.js +67 -67
  118. package/src/models/waitlist.js +45 -45
  119. package/src/models/wallet.js +44 -44
  120. package/src/models/wallet_transactions.js +50 -50
  121. package/src/models/water_invoice.js +305 -305
  122. package/src/models/water_meter_Command_Queue.js +33 -33
  123. package/src/models/water_meter_account.js +78 -78
  124. package/src/models/water_meter_billing.js +58 -58
  125. package/src/models/water_meter_communication.js +17 -17
  126. package/src/models/water_meter_communication_logs.js +30 -30
  127. package/src/models/water_meter_concentrator.js +66 -66
  128. package/src/models/water_meter_daily_history.js +32 -32
  129. package/src/models/water_meter_iot_cards.js +34 -34
  130. package/src/models/water_meter_manufacturer.js +35 -35
  131. package/src/models/water_meter_monthly_history.js +36 -36
  132. package/src/models/water_meter_negative_amounts.js +38 -38
  133. package/src/models/water_meter_settings.js +180 -180
  134. package/src/models/water_meter_single_day_history.js +34 -34
  135. package/src/models/water_meter_size.js +15 -15
  136. package/src/models/water_meters.js +134 -123
  137. package/src/models/water_meters_delivery.js +76 -76
  138. package/src/models/water_prepaid_credit.js +47 -47
  139. package/src/models/water_prepaid_debit.js +50 -50
  140. 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;