payservedb 6.9.0 → 6.9.2

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 (152) hide show
  1. package/.env +2 -2
  2. package/index.js +287 -284
  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/asset.js +92 -92
  9. package/src/models/assetsAssignment.js +64 -64
  10. package/src/models/auditTrail.js +346 -346
  11. package/src/models/bankdetails.js +40 -40
  12. package/src/models/billerAddress.js +119 -119
  13. package/src/models/booking_invoice.js +151 -151
  14. package/src/models/bookinganalytics.js +63 -63
  15. package/src/models/bookingconfig.js +45 -45
  16. package/src/models/bookingproperty.js +122 -122
  17. package/src/models/bookingreservation.js +192 -192
  18. package/src/models/bookingrevenuerecord.js +84 -84
  19. package/src/models/budget.js +95 -95
  20. package/src/models/budgetCategory.js +19 -19
  21. package/src/models/campaigns.js +94 -94
  22. package/src/models/cashpayment.js +264 -264
  23. package/src/models/combinedUnits.js +62 -62
  24. package/src/models/common_area_electricity.js +38 -38
  25. package/src/models/common_area_generator.js +41 -41
  26. package/src/models/common_area_utility_alert.js +37 -37
  27. package/src/models/common_area_water.js +39 -39
  28. package/src/models/communication_status.js +33 -33
  29. package/src/models/company.js +53 -53
  30. package/src/models/coreBaseSettings.js +16 -16
  31. package/src/models/coreInvoiceSettings.js +100 -100
  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/dailyChecklist.js +312 -312
  36. package/src/models/default_payment_details.js +17 -17
  37. package/src/models/deliveryTimeMarks.js +18 -18
  38. package/src/models/dutyRosterChecklist.js +250 -250
  39. package/src/models/dutyroster.js +136 -136
  40. package/src/models/email.js +37 -37
  41. package/src/models/email_sms_queue.js +61 -61
  42. package/src/models/entry_exit.js +53 -53
  43. package/src/models/expense.js +99 -99
  44. package/src/models/expense_category.js +45 -45
  45. package/src/models/facility.js +62 -62
  46. package/src/models/facilityContractPricing.js +51 -51
  47. package/src/models/facilityInvoice.js +222 -222
  48. package/src/models/facilityInvoiceContract.js +268 -268
  49. package/src/models/facilityWalletTransactionsMetadata.js +236 -236
  50. package/src/models/facility_departements.js +20 -20
  51. package/src/models/facility_payment_details.js +20 -20
  52. package/src/models/facilityasset.js +25 -25
  53. package/src/models/faq.js +18 -18
  54. package/src/models/gl_account_double_entries.js +25 -25
  55. package/src/models/gl_accounts.js +56 -56
  56. package/src/models/gl_entries.js +49 -49
  57. package/src/models/goodsReceivedNotes.js +115 -115
  58. package/src/models/guard.js +47 -47
  59. package/src/models/handover.js +246 -246
  60. package/src/models/invoice.js +336 -336
  61. package/src/models/item_inspection.js +67 -67
  62. package/src/models/leaseagreement.js +226 -226
  63. package/src/models/leasetemplate.js +17 -17
  64. package/src/models/levy.js +206 -206
  65. package/src/models/levy_invoice_settings.js +26 -26
  66. package/src/models/levycontract.js +168 -168
  67. package/src/models/levytype.js +23 -23
  68. package/src/models/maintenance_service_vendor.js +38 -38
  69. package/src/models/maintenance_services.js +17 -17
  70. package/src/models/maintenancerequisition.js +31 -31
  71. package/src/models/master_workplan.js +32 -32
  72. package/src/models/master_workplan_child.js +34 -34
  73. package/src/models/message.js +38 -38
  74. package/src/models/module.js +21 -21
  75. package/src/models/notification.js +44 -44
  76. package/src/models/paymentTermsMarks.js +19 -19
  77. package/src/models/penalty.js +76 -76
  78. package/src/models/pendingCredentials.js +32 -32
  79. package/src/models/powerMeterCommunicationProtocol.js +17 -17
  80. package/src/models/powerMeterCustomerAccount.js +78 -78
  81. package/src/models/powerMeterCustomerBand.js +14 -14
  82. package/src/models/powerMeterDailyReading.js +30 -30
  83. package/src/models/powerMeterGateways.js +37 -37
  84. package/src/models/powerMeterMonthlyReading.js +34 -34
  85. package/src/models/powerMeterPowerCharges.js +53 -53
  86. package/src/models/powerMeterSettings.js +138 -138
  87. package/src/models/powerMeterSingleDayReading.js +32 -32
  88. package/src/models/powerMeters.js +104 -104
  89. package/src/models/powerMetersManufacturer.js +14 -14
  90. package/src/models/power_meter_account.js +81 -81
  91. package/src/models/power_meter_command_logs.js +30 -30
  92. package/src/models/power_meter_negative_balance.js +44 -0
  93. package/src/models/power_prepaid_credits.js +47 -0
  94. package/src/models/power_prepaid_debits.js +50 -0
  95. package/src/models/propertyManagerContract.js +556 -556
  96. package/src/models/propertyManagerRevenue.js +195 -195
  97. package/src/models/purchaseOrderInvoice.js +74 -74
  98. package/src/models/purchase_order.js +213 -213
  99. package/src/models/purchase_request.js +110 -110
  100. package/src/models/refresh_token.js +23 -23
  101. package/src/models/reminder.js +197 -197
  102. package/src/models/report.js +13 -13
  103. package/src/models/resident.js +121 -121
  104. package/src/models/rfq_details.js +131 -131
  105. package/src/models/rfq_response.js +153 -153
  106. package/src/models/service_charge_invoice_upload.js +42 -42
  107. package/src/models/service_charge_payments.js +27 -27
  108. package/src/models/servicerequest.js +55 -55
  109. package/src/models/settings.js +62 -62
  110. package/src/models/smart_meter_daily_consumption.js +44 -44
  111. package/src/models/sms_africastalking.js +20 -20
  112. package/src/models/sms_balance_notification.js +26 -26
  113. package/src/models/sms_meliora.js +20 -20
  114. package/src/models/staff.js +36 -36
  115. package/src/models/stocksandspare.js +161 -161
  116. package/src/models/suppliers.js +74 -74
  117. package/src/models/tickets.js +121 -121
  118. package/src/models/unitManagementTemplate.js +44 -44
  119. package/src/models/unitasset.js +25 -25
  120. package/src/models/units.js +117 -117
  121. package/src/models/user.js +186 -186
  122. package/src/models/valueaddedservices.js +79 -79
  123. package/src/models/vas_invoices_upload.js +50 -50
  124. package/src/models/vas_payments.js +24 -24
  125. package/src/models/vasinvoice.js +192 -192
  126. package/src/models/vasvendor.js +57 -57
  127. package/src/models/visitLog.js +95 -95
  128. package/src/models/visitor.js +67 -67
  129. package/src/models/waitlist.js +45 -45
  130. package/src/models/wallet.js +44 -44
  131. package/src/models/wallet_transactions.js +50 -50
  132. package/src/models/water_invoice.js +305 -305
  133. package/src/models/water_meter_Command_Queue.js +33 -33
  134. package/src/models/water_meter_account.js +82 -82
  135. package/src/models/water_meter_billing.js +58 -58
  136. package/src/models/water_meter_communication.js +17 -17
  137. package/src/models/water_meter_communication_logs.js +30 -30
  138. package/src/models/water_meter_concentrator.js +66 -66
  139. package/src/models/water_meter_daily_history.js +32 -32
  140. package/src/models/water_meter_iot_cards.js +34 -34
  141. package/src/models/water_meter_manufacturer.js +35 -35
  142. package/src/models/water_meter_monthly_history.js +36 -36
  143. package/src/models/water_meter_negative_amounts.js +44 -39
  144. package/src/models/water_meter_settings.js +227 -227
  145. package/src/models/water_meter_single_day_history.js +34 -34
  146. package/src/models/water_meter_size.js +15 -15
  147. package/src/models/water_meters.js +134 -134
  148. package/src/models/water_meters_delivery.js +76 -76
  149. package/src/models/water_prepaid_credit.js +47 -47
  150. package/src/models/water_prepaid_debit.js +50 -50
  151. package/src/models/workorder.js +49 -49
  152. package/src/models/power_prepaid_credts.js +0 -0
@@ -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,44 @@
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
- module.exports = NegativeBalance;
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
+ type: {
29
+ type: String,
30
+ enum: ['Credit', 'Debit'],
31
+ required: true
32
+ },
33
+ dateRecorded: {
34
+ type: Date,
35
+ required: true,
36
+ default: Date.now
37
+ }
38
+ }, {
39
+ timestamps: true
40
+ });
41
+
42
+ const NegativeBalance = mongoose.model('NegativeBalance', negativeBalanceSchema);
43
+
44
+ module.exports = NegativeBalance;
@@ -1,228 +1,228 @@
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
-
74
- // Updated notification structure
75
- notifications: {
76
- usageAlerts: {
77
- enabled: {
78
- type: Boolean,
79
- default: false
80
- },
81
- daily: {
82
- type: Boolean,
83
- default: false
84
- },
85
- weekly: {
86
- type: Boolean,
87
- default: false
88
- },
89
- monthly: {
90
- type: Boolean,
91
- default: false
92
- }
93
- },
94
- statements: {
95
- enabled: {
96
- type: Boolean,
97
- default: false
98
- }
99
- }
100
- },
101
- dailyNotifications: {
102
- type: Boolean,
103
- default: false
104
- },
105
- weeklyNotifications: {
106
- type: Boolean,
107
- default: false
108
- },
109
- allNotifications: {
110
- type: Boolean,
111
- default: false
112
- },
113
-
114
- // Add other charges section
115
- otherCharges: {
116
- type: String,
117
- enum: ['yes', 'no'],
118
- default: 'no'
119
- },
120
- sewerageCharge: {
121
- type: Number,
122
- default: 0
123
- },
124
- fixedCharge: {
125
- type: Number,
126
- default: 0
127
- },
128
- vatPercentage: {
129
- type: Number,
130
- min: 0,
131
- max: 100,
132
- default: 0
133
- },
134
-
135
- // PAYMENTS
136
- paymentMethods: {
137
- mobilePayment: {
138
- status: {
139
- type: Boolean,
140
- default: false
141
- },
142
- paymentId: {
143
- type: mongoose.Schema.Types.ObjectId,
144
- ref: 'FacilityPaymentDetails'
145
- }
146
- },
147
- bankPayment: {
148
- status: {
149
- type: Boolean,
150
- default: false
151
- },
152
- paymentId: {
153
- type: mongoose.Schema.Types.ObjectId,
154
- ref: 'BankDetails'
155
- }
156
- }
157
- },
158
-
159
- // Biller Address Information for Invoice Generation
160
- billerAddress: {
161
- name: {
162
- type: String,
163
- required: [true, "Biller name is required"],
164
- trim: true,
165
- minlength: [1, "Biller name must be at least 1 character long"],
166
- },
167
- email: {
168
- type: String,
169
- required: [true, "Biller email is required"],
170
- trim: true,
171
- lowercase: true,
172
- validate: {
173
- validator: function (v) {
174
- return /^\w+([\.-]?\w+)@\w+([\.-]?\w+)(\.\w{2,3})+$/.test(v);
175
- },
176
- message: "Please enter a valid email address"
177
- }
178
- },
179
- phone: {
180
- type: String,
181
- required: [true, "Biller phone is required"],
182
- trim: true,
183
- },
184
- address: {
185
- type: String,
186
- required: [true, "Biller address is required"],
187
- trim: true,
188
- },
189
- city: {
190
- type: String,
191
- required: [true, "Biller city is required"],
192
- trim: true,
193
- }
194
- },
195
-
196
- glAccounts: {
197
- invoice: {
198
- debit: {
199
- type: mongoose.Schema.Types.ObjectId,
200
- ref: "GLAccount",
201
- required: false,
202
- },
203
- credit: {
204
- type: mongoose.Schema.Types.ObjectId,
205
- ref: "GLAccount",
206
- required: false,
207
- }
208
- },
209
- payment: {
210
- debit: {
211
- type: mongoose.Schema.Types.ObjectId,
212
- ref: "GLAccount",
213
- required: false,
214
- },
215
- credit: {
216
- type: mongoose.Schema.Types.ObjectId,
217
- ref: "GLAccount",
218
- required: false,
219
- }
220
- }
221
- },
222
- }, {
223
- timestamps: true
224
- });
225
-
226
- const WaterMeterSettings = mongoose.model('WaterMeterSettings', waterMeterSettingsSchema);
227
-
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
+
74
+ // Updated notification structure
75
+ notifications: {
76
+ usageAlerts: {
77
+ enabled: {
78
+ type: Boolean,
79
+ default: false
80
+ },
81
+ daily: {
82
+ type: Boolean,
83
+ default: false
84
+ },
85
+ weekly: {
86
+ type: Boolean,
87
+ default: false
88
+ },
89
+ monthly: {
90
+ type: Boolean,
91
+ default: false
92
+ }
93
+ },
94
+ statements: {
95
+ enabled: {
96
+ type: Boolean,
97
+ default: false
98
+ }
99
+ }
100
+ },
101
+ dailyNotifications: {
102
+ type: Boolean,
103
+ default: false
104
+ },
105
+ weeklyNotifications: {
106
+ type: Boolean,
107
+ default: false
108
+ },
109
+ allNotifications: {
110
+ type: Boolean,
111
+ default: false
112
+ },
113
+
114
+ // Add other charges section
115
+ otherCharges: {
116
+ type: String,
117
+ enum: ['yes', 'no'],
118
+ default: 'no'
119
+ },
120
+ sewerageCharge: {
121
+ type: Number,
122
+ default: 0
123
+ },
124
+ fixedCharge: {
125
+ type: Number,
126
+ default: 0
127
+ },
128
+ vatPercentage: {
129
+ type: Number,
130
+ min: 0,
131
+ max: 100,
132
+ default: 0
133
+ },
134
+
135
+ // PAYMENTS
136
+ paymentMethods: {
137
+ mobilePayment: {
138
+ status: {
139
+ type: Boolean,
140
+ default: false
141
+ },
142
+ paymentId: {
143
+ type: mongoose.Schema.Types.ObjectId,
144
+ ref: 'FacilityPaymentDetails'
145
+ }
146
+ },
147
+ bankPayment: {
148
+ status: {
149
+ type: Boolean,
150
+ default: false
151
+ },
152
+ paymentId: {
153
+ type: mongoose.Schema.Types.ObjectId,
154
+ ref: 'BankDetails'
155
+ }
156
+ }
157
+ },
158
+
159
+ // Biller Address Information for Invoice Generation
160
+ billerAddress: {
161
+ name: {
162
+ type: String,
163
+ required: [true, "Biller name is required"],
164
+ trim: true,
165
+ minlength: [1, "Biller name must be at least 1 character long"],
166
+ },
167
+ email: {
168
+ type: String,
169
+ required: [true, "Biller email is required"],
170
+ trim: true,
171
+ lowercase: true,
172
+ validate: {
173
+ validator: function (v) {
174
+ return /^\w+([\.-]?\w+)@\w+([\.-]?\w+)(\.\w{2,3})+$/.test(v);
175
+ },
176
+ message: "Please enter a valid email address"
177
+ }
178
+ },
179
+ phone: {
180
+ type: String,
181
+ required: [true, "Biller phone is required"],
182
+ trim: true,
183
+ },
184
+ address: {
185
+ type: String,
186
+ required: [true, "Biller address is required"],
187
+ trim: true,
188
+ },
189
+ city: {
190
+ type: String,
191
+ required: [true, "Biller city is required"],
192
+ trim: true,
193
+ }
194
+ },
195
+
196
+ glAccounts: {
197
+ invoice: {
198
+ debit: {
199
+ type: mongoose.Schema.Types.ObjectId,
200
+ ref: "GLAccount",
201
+ required: false,
202
+ },
203
+ credit: {
204
+ type: mongoose.Schema.Types.ObjectId,
205
+ ref: "GLAccount",
206
+ required: false,
207
+ }
208
+ },
209
+ payment: {
210
+ debit: {
211
+ type: mongoose.Schema.Types.ObjectId,
212
+ ref: "GLAccount",
213
+ required: false,
214
+ },
215
+ credit: {
216
+ type: mongoose.Schema.Types.ObjectId,
217
+ ref: "GLAccount",
218
+ required: false,
219
+ }
220
+ }
221
+ },
222
+ }, {
223
+ timestamps: true
224
+ });
225
+
226
+ const WaterMeterSettings = mongoose.model('WaterMeterSettings', waterMeterSettingsSchema);
227
+
228
228
  module.exports = WaterMeterSettings;