payservedb 5.8.8 → 5.8.9

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 (122) hide show
  1. package/.env +2 -2
  2. package/index.js +203 -203
  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 +34 -34
  10. package/src/models/assetsAssignment.js +64 -64
  11. package/src/models/auditlog.js +83 -83
  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 +112 -112
  18. package/src/models/bookingreservation.js +192 -192
  19. package/src/models/bookingrevenuerecord.js +84 -84
  20. package/src/models/budget.js +91 -91
  21. package/src/models/budgetCategory.js +19 -19
  22. package/src/models/campaigns.js +72 -72
  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 +26 -0
  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 +200 -200
  34. package/src/models/default_payment_details.js +17 -17
  35. package/src/models/deliveryTimeMarks.js +18 -18
  36. package/src/models/dutyroster.js +107 -107
  37. package/src/models/email.js +37 -37
  38. package/src/models/entry_exit.js +53 -53
  39. package/src/models/expense.js +99 -99
  40. package/src/models/expense_category.js +45 -45
  41. package/src/models/facility.js +61 -61
  42. package/src/models/facility_departements.js +20 -20
  43. package/src/models/facility_payment_details.js +20 -20
  44. package/src/models/facilityasset.js +25 -25
  45. package/src/models/faq.js +18 -18
  46. package/src/models/gl_account_double_entries.js +25 -25
  47. package/src/models/gl_accounts.js +56 -56
  48. package/src/models/gl_entries.js +49 -49
  49. package/src/models/goodsReceivedNotes.js +61 -61
  50. package/src/models/guard.js +47 -47
  51. package/src/models/handover.js +246 -246
  52. package/src/models/invoice.js +336 -336
  53. package/src/models/item_inspection.js +67 -67
  54. package/src/models/leaseagreement.js +221 -221
  55. package/src/models/leasetemplate.js +17 -17
  56. package/src/models/levy.js +206 -206
  57. package/src/models/levy_invoice_settings.js +26 -26
  58. package/src/models/levycontract.js +117 -117
  59. package/src/models/levytype.js +23 -23
  60. package/src/models/maintenance_service_vendor.js +38 -38
  61. package/src/models/maintenance_services.js +17 -17
  62. package/src/models/maintenancerequisition.js +31 -31
  63. package/src/models/message.js +38 -38
  64. package/src/models/module.js +21 -21
  65. package/src/models/notification.js +44 -44
  66. package/src/models/paymentTermsMarks.js +19 -19
  67. package/src/models/penalty.js +76 -76
  68. package/src/models/pendingCredentials.js +32 -32
  69. package/src/models/propertyManagerContract.js +468 -468
  70. package/src/models/propertyManagerRevenue.js +100 -100
  71. package/src/models/purchase_order.js +202 -202
  72. package/src/models/purchase_request.js +110 -110
  73. package/src/models/refresh_token.js +23 -23
  74. package/src/models/reminder.js +197 -197
  75. package/src/models/report.js +13 -13
  76. package/src/models/resident.js +121 -121
  77. package/src/models/rfq_details.js +131 -131
  78. package/src/models/rfq_response.js +110 -110
  79. package/src/models/service_charge_invoice_upload.js +42 -42
  80. package/src/models/service_charge_payments.js +27 -27
  81. package/src/models/servicerequest.js +55 -55
  82. package/src/models/settings.js +62 -62
  83. package/src/models/smart_meter_daily_consumption.js +44 -44
  84. package/src/models/sms_africastalking.js +20 -20
  85. package/src/models/sms_meliora.js +20 -20
  86. package/src/models/staff.js +36 -36
  87. package/src/models/stocksandspare.js +34 -34
  88. package/src/models/suppliers.js +74 -74
  89. package/src/models/tickets.js +121 -121
  90. package/src/models/unitManagementTemplate.js +44 -44
  91. package/src/models/unitasset.js +25 -25
  92. package/src/models/units.js +112 -112
  93. package/src/models/user.js +186 -186
  94. package/src/models/valueaddedservices.js +79 -79
  95. package/src/models/vas_invoices_upload.js +50 -50
  96. package/src/models/vas_payments.js +24 -24
  97. package/src/models/vasinvoice.js +192 -192
  98. package/src/models/vasvendor.js +57 -57
  99. package/src/models/visitLog.js +86 -86
  100. package/src/models/visitor.js +67 -67
  101. package/src/models/waitlist.js +45 -45
  102. package/src/models/wallet.js +39 -39
  103. package/src/models/wallet_transactions.js +50 -50
  104. package/src/models/water_invoice.js +193 -193
  105. package/src/models/water_meter_Command_Queue.js +33 -33
  106. package/src/models/water_meter_account.js +78 -78
  107. package/src/models/water_meter_billing.js +58 -58
  108. package/src/models/water_meter_communication.js +17 -17
  109. package/src/models/water_meter_communication_logs.js +30 -30
  110. package/src/models/water_meter_concentrator.js +63 -63
  111. package/src/models/water_meter_daily_history.js +32 -32
  112. package/src/models/water_meter_iot_cards.js +34 -34
  113. package/src/models/water_meter_manufacturer.js +35 -35
  114. package/src/models/water_meter_monthly_history.js +36 -36
  115. package/src/models/water_meter_settings.js +114 -114
  116. package/src/models/water_meter_single_day_history.js +34 -34
  117. package/src/models/water_meter_size.js +15 -15
  118. package/src/models/water_meters.js +117 -117
  119. package/src/models/water_meters_delivery.js +76 -76
  120. package/src/models/water_prepaid_credit.js +43 -43
  121. package/src/models/water_prepaid_debit.js +50 -50
  122. package/src/models/workorder.js +49 -49
@@ -1,68 +1,68 @@
1
- const mongoose = require('mongoose');
2
-
3
- // Define the schema for inspection items
4
- const inspectionItemSchema = new mongoose.Schema({
5
- name: {
6
- type: String,
7
- required: [true, 'Item name is required'],
8
- trim: true
9
- },
10
- category: {
11
- type: String,
12
- required: [true, 'Category is required'],
13
- trim: true
14
- },
15
- subcategory: {
16
- type: String,
17
- trim: true,
18
- default: null
19
- },
20
- description: {
21
- type: String,
22
- trim: true
23
- },
24
- possibleConditions: {
25
- type: [String],
26
- default: ['Excellent', 'Good', 'Fair', 'Poor', 'Damaged', 'Non-functional'],
27
- validate: {
28
- validator: function(v) {
29
- return v.length > 0;
30
- },
31
- message: 'At least one possible condition is required'
32
- }
33
- },
34
- defaultCondition: {
35
- type: String,
36
- default: 'Good'
37
- },
38
- isRequired: {
39
- type: Boolean,
40
- default: true
41
- },
42
- defaultQuantity: {
43
- type: Number,
44
- default: 1,
45
- min: [1, 'Default quantity must be at least 1']
46
- },
47
- active: {
48
- type: Boolean,
49
- default: true
50
- },
51
- facilityId: {
52
- type: mongoose.Schema.Types.ObjectId,
53
- ref: 'Facility',
54
- required: true
55
- }
56
- }, {
57
- timestamps: true
58
- });
59
-
60
- // Add indexes for common queries
61
- inspectionItemSchema.index({ facilityId: 1 });
62
- inspectionItemSchema.index({ facilityId: 1, category: 1 });
63
- inspectionItemSchema.index({ facilityId: 1, active: 1 });
64
-
65
- // Create InspectionItem model
66
- const InspectionItem = mongoose.model('InspectionItem', inspectionItemSchema);
67
-
1
+ const mongoose = require('mongoose');
2
+
3
+ // Define the schema for inspection items
4
+ const inspectionItemSchema = new mongoose.Schema({
5
+ name: {
6
+ type: String,
7
+ required: [true, 'Item name is required'],
8
+ trim: true
9
+ },
10
+ category: {
11
+ type: String,
12
+ required: [true, 'Category is required'],
13
+ trim: true
14
+ },
15
+ subcategory: {
16
+ type: String,
17
+ trim: true,
18
+ default: null
19
+ },
20
+ description: {
21
+ type: String,
22
+ trim: true
23
+ },
24
+ possibleConditions: {
25
+ type: [String],
26
+ default: ['Excellent', 'Good', 'Fair', 'Poor', 'Damaged', 'Non-functional'],
27
+ validate: {
28
+ validator: function(v) {
29
+ return v.length > 0;
30
+ },
31
+ message: 'At least one possible condition is required'
32
+ }
33
+ },
34
+ defaultCondition: {
35
+ type: String,
36
+ default: 'Good'
37
+ },
38
+ isRequired: {
39
+ type: Boolean,
40
+ default: true
41
+ },
42
+ defaultQuantity: {
43
+ type: Number,
44
+ default: 1,
45
+ min: [1, 'Default quantity must be at least 1']
46
+ },
47
+ active: {
48
+ type: Boolean,
49
+ default: true
50
+ },
51
+ facilityId: {
52
+ type: mongoose.Schema.Types.ObjectId,
53
+ ref: 'Facility',
54
+ required: true
55
+ }
56
+ }, {
57
+ timestamps: true
58
+ });
59
+
60
+ // Add indexes for common queries
61
+ inspectionItemSchema.index({ facilityId: 1 });
62
+ inspectionItemSchema.index({ facilityId: 1, category: 1 });
63
+ inspectionItemSchema.index({ facilityId: 1, active: 1 });
64
+
65
+ // Create InspectionItem model
66
+ const InspectionItem = mongoose.model('InspectionItem', inspectionItemSchema);
67
+
68
68
  module.exports = InspectionItem;
@@ -1,222 +1,222 @@
1
- const mongoose = require('mongoose');
2
-
3
- const leaseAgreementSchema = new mongoose.Schema({
4
- facilityId: {
5
- type: mongoose.Schema.Types.ObjectId,
6
- ref: 'Facility',
7
- required: true
8
- },
9
- currency: {
10
- type: mongoose.Schema.Types.ObjectId,
11
- ref: 'Currency',
12
- required: true
13
- },
14
- unitNumber: {
15
- type: mongoose.Schema.Types.ObjectId,
16
- ref: 'Unit',
17
- required: true
18
- },
19
- tenant: {
20
- type: mongoose.Schema.Types.ObjectId,
21
- ref: 'Customer',
22
- required: true
23
- },
24
- landlord: {
25
- type: mongoose.Schema.Types.ObjectId,
26
- ref: 'Customer',
27
- required: true
28
- },
29
- // GL Account configurations
30
- invoiceDoubleEntryAccount: {
31
- type: mongoose.Schema.Types.ObjectId,
32
- ref: 'GLAccountDoubleEntries'
33
- },
34
- paymentDoubleEntryAccount: {
35
- type: mongoose.Schema.Types.ObjectId,
36
- ref: 'GLAccountDoubleEntries'
37
- },
38
- // GL Account direct configurations (used when creating double entry records)
39
- glAccounts: {
40
- invoice: {
41
- debit: {
42
- type: mongoose.Schema.Types.ObjectId,
43
- ref: 'GLAccount'
44
- },
45
- credit: {
46
- type: mongoose.Schema.Types.ObjectId,
47
- ref: 'GLAccount'
48
- }
49
- },
50
- payment: {
51
- debit: {
52
- type: mongoose.Schema.Types.ObjectId,
53
- ref: 'GLAccount'
54
- },
55
- credit: {
56
- type: mongoose.Schema.Types.ObjectId,
57
- ref: 'GLAccount'
58
- }
59
- }
60
- },
61
- leaseTerms: {
62
- startDate: { type: Date, required: true },
63
- endDate: { type: Date, required: true },
64
- duration: { type: Number, required: true },
65
- autoRenewal: { type: Boolean, default: false }
66
- },
67
- isNewTenant: { type: Boolean, default: false },
68
- financialTerms: {
69
- monthlyRent: { type: Number, required: true },
70
- paymentDueDate: { type: Number, required: true },
71
- paymentMethods: [{
72
- type: {
73
- type: String,
74
- required: true,
75
- enum: ['Bank Transfer', 'Cash', 'Cheque']
76
- },
77
- details: {
78
- bankName: String,
79
- accountName: String,
80
- accountNumber: String,
81
- branch: String,
82
- swiftCode: String,
83
- bankToDraft: String,
84
- chequeAccountNumber: String,
85
- preferredCashLocation: String
86
- },
87
- isPrimary: { type: Boolean, default: false }
88
- }],
89
- securityDeposit: { type: Number, required: true },
90
- balanceBroughtForward: { type: Number, required: true, default: 0 },
91
- penaltyId: {
92
- type: mongoose.Schema.Types.ObjectId,
93
- ref: 'Penalty'
94
- },
95
- mpesaEnabled: {
96
- type: Boolean,
97
- default: false
98
- },
99
- mpesaDetails: {
100
- businessNumber: String,
101
- accountNumber: String,
102
- phoneNumber: String
103
- },
104
- escalations: [{
105
- _id: { type: mongoose.Schema.Types.ObjectId, auto: true },
106
- effectiveDate: { type: Date, required: true },
107
- type: {
108
- type: String,
109
- enum: ['percentage', 'fixed'],
110
- required: true
111
- },
112
- value: { type: Number, required: true },
113
- status: {
114
- type: String,
115
- enum: ['scheduled', 'applied', 'cancelled'],
116
- default: 'scheduled'
117
- }
118
- }]
119
- },
120
- billingCycle: {
121
- frequency: {
122
- type: String,
123
- enum: ['Monthly', 'Quarterly', 'Annually'],
124
- required: true
125
- },
126
- nextInvoiceDate: { type: Date },
127
- autoSend: { type: Boolean, default: false },
128
- lastInvoiceDate: { type: Date }
129
- },
130
- invoices: [
131
- { type: mongoose.Schema.Types.ObjectId, ref: 'Invoice' }
132
- ],
133
- leaseTemplate: {
134
- type: mongoose.Schema.Types.ObjectId,
135
- ref: 'LeaseTemplate',
136
- required: true
137
- },
138
- leaseDocuments: [
139
- {
140
- fileName: { type: String },
141
- fileUrl: { type: String },
142
- uploadedAt: { type: Date, default: Date.now }
143
- }
144
- ],
145
- reminders: [
146
- {
147
- reminderId: {
148
- type: mongoose.Schema.Types.ObjectId,
149
- ref: 'Reminder'
150
- },
151
- status: {
152
- type: String,
153
- enum: ['Pending', 'Sent'],
154
- default: 'Pending'
155
- }
156
- }
157
- ],
158
- status: {
159
- type: String,
160
- enum: ['Active', 'Pending', 'Expired', 'Terminated'],
161
- default: 'Active'
162
- },
163
- requireLandlordApproval: {
164
- type: Boolean,
165
- default: false
166
- },
167
- payments: [
168
- {
169
- invoiceId: {
170
- type: mongoose.Schema.Types.ObjectId,
171
- ref: 'Invoice',
172
- required: true
173
- },
174
- method: {
175
- type: {
176
- type: String,
177
- enum: ['Bank Transfer', 'Cash', 'Cheque', 'MPESA'],
178
- required: true
179
- },
180
- details: {
181
- bankName: String,
182
- accountNumber: String,
183
- transactionId: String,
184
- chequeNumber: String,
185
- mpesaTransactionId: String,
186
- mpesaPhoneNumber: String
187
- }
188
- },
189
- amount: { type: Number, required: true },
190
- receivedBy: {
191
- type: mongoose.Schema.Types.ObjectId,
192
- ref: 'User',
193
- required: true
194
- },
195
- receivedAt: { type: Date, default: Date.now }
196
- }
197
- ],
198
- // New field to track lease edit history
199
- editHistory: [
200
- {
201
- editedBy: {
202
- type: mongoose.Schema.Types.Mixed,
203
- ref: 'User'
204
- },
205
- editedAt: { type: Date, default: Date.now },
206
- reason: { type: String, required: true },
207
- changes: { type: Object } // Optional: Store what fields were changed
208
- }
209
- ],
210
- createdBy: {
211
- type: mongoose.Schema.Types.ObjectId,
212
- ref: 'User'
213
- }
214
- }, {
215
- timestamps: true
216
- });
217
-
218
- leaseAgreementSchema.index({ facilityId: 1 });
219
-
220
- const LeaseAgreement = mongoose.model('LeaseAgreement', leaseAgreementSchema);
221
-
1
+ const mongoose = require('mongoose');
2
+
3
+ const leaseAgreementSchema = new mongoose.Schema({
4
+ facilityId: {
5
+ type: mongoose.Schema.Types.ObjectId,
6
+ ref: 'Facility',
7
+ required: true
8
+ },
9
+ currency: {
10
+ type: mongoose.Schema.Types.ObjectId,
11
+ ref: 'Currency',
12
+ required: true
13
+ },
14
+ unitNumber: {
15
+ type: mongoose.Schema.Types.ObjectId,
16
+ ref: 'Unit',
17
+ required: true
18
+ },
19
+ tenant: {
20
+ type: mongoose.Schema.Types.ObjectId,
21
+ ref: 'Customer',
22
+ required: true
23
+ },
24
+ landlord: {
25
+ type: mongoose.Schema.Types.ObjectId,
26
+ ref: 'Customer',
27
+ required: true
28
+ },
29
+ // GL Account configurations
30
+ invoiceDoubleEntryAccount: {
31
+ type: mongoose.Schema.Types.ObjectId,
32
+ ref: 'GLAccountDoubleEntries'
33
+ },
34
+ paymentDoubleEntryAccount: {
35
+ type: mongoose.Schema.Types.ObjectId,
36
+ ref: 'GLAccountDoubleEntries'
37
+ },
38
+ // GL Account direct configurations (used when creating double entry records)
39
+ glAccounts: {
40
+ invoice: {
41
+ debit: {
42
+ type: mongoose.Schema.Types.ObjectId,
43
+ ref: 'GLAccount'
44
+ },
45
+ credit: {
46
+ type: mongoose.Schema.Types.ObjectId,
47
+ ref: 'GLAccount'
48
+ }
49
+ },
50
+ payment: {
51
+ debit: {
52
+ type: mongoose.Schema.Types.ObjectId,
53
+ ref: 'GLAccount'
54
+ },
55
+ credit: {
56
+ type: mongoose.Schema.Types.ObjectId,
57
+ ref: 'GLAccount'
58
+ }
59
+ }
60
+ },
61
+ leaseTerms: {
62
+ startDate: { type: Date, required: true },
63
+ endDate: { type: Date, required: true },
64
+ duration: { type: Number, required: true },
65
+ autoRenewal: { type: Boolean, default: false }
66
+ },
67
+ isNewTenant: { type: Boolean, default: false },
68
+ financialTerms: {
69
+ monthlyRent: { type: Number, required: true },
70
+ paymentDueDate: { type: Number, required: true },
71
+ paymentMethods: [{
72
+ type: {
73
+ type: String,
74
+ required: true,
75
+ enum: ['Bank Transfer', 'Cash', 'Cheque']
76
+ },
77
+ details: {
78
+ bankName: String,
79
+ accountName: String,
80
+ accountNumber: String,
81
+ branch: String,
82
+ swiftCode: String,
83
+ bankToDraft: String,
84
+ chequeAccountNumber: String,
85
+ preferredCashLocation: String
86
+ },
87
+ isPrimary: { type: Boolean, default: false }
88
+ }],
89
+ securityDeposit: { type: Number, required: true },
90
+ balanceBroughtForward: { type: Number, required: true, default: 0 },
91
+ penaltyId: {
92
+ type: mongoose.Schema.Types.ObjectId,
93
+ ref: 'Penalty'
94
+ },
95
+ mpesaEnabled: {
96
+ type: Boolean,
97
+ default: false
98
+ },
99
+ mpesaDetails: {
100
+ businessNumber: String,
101
+ accountNumber: String,
102
+ phoneNumber: String
103
+ },
104
+ escalations: [{
105
+ _id: { type: mongoose.Schema.Types.ObjectId, auto: true },
106
+ effectiveDate: { type: Date, required: true },
107
+ type: {
108
+ type: String,
109
+ enum: ['percentage', 'fixed'],
110
+ required: true
111
+ },
112
+ value: { type: Number, required: true },
113
+ status: {
114
+ type: String,
115
+ enum: ['scheduled', 'applied', 'cancelled'],
116
+ default: 'scheduled'
117
+ }
118
+ }]
119
+ },
120
+ billingCycle: {
121
+ frequency: {
122
+ type: String,
123
+ enum: ['Monthly', 'Quarterly', 'Annually'],
124
+ required: true
125
+ },
126
+ nextInvoiceDate: { type: Date },
127
+ autoSend: { type: Boolean, default: false },
128
+ lastInvoiceDate: { type: Date }
129
+ },
130
+ invoices: [
131
+ { type: mongoose.Schema.Types.ObjectId, ref: 'Invoice' }
132
+ ],
133
+ leaseTemplate: {
134
+ type: mongoose.Schema.Types.ObjectId,
135
+ ref: 'LeaseTemplate',
136
+ required: true
137
+ },
138
+ leaseDocuments: [
139
+ {
140
+ fileName: { type: String },
141
+ fileUrl: { type: String },
142
+ uploadedAt: { type: Date, default: Date.now }
143
+ }
144
+ ],
145
+ reminders: [
146
+ {
147
+ reminderId: {
148
+ type: mongoose.Schema.Types.ObjectId,
149
+ ref: 'Reminder'
150
+ },
151
+ status: {
152
+ type: String,
153
+ enum: ['Pending', 'Sent'],
154
+ default: 'Pending'
155
+ }
156
+ }
157
+ ],
158
+ status: {
159
+ type: String,
160
+ enum: ['Active', 'Pending', 'Expired', 'Terminated'],
161
+ default: 'Active'
162
+ },
163
+ requireLandlordApproval: {
164
+ type: Boolean,
165
+ default: false
166
+ },
167
+ payments: [
168
+ {
169
+ invoiceId: {
170
+ type: mongoose.Schema.Types.ObjectId,
171
+ ref: 'Invoice',
172
+ required: true
173
+ },
174
+ method: {
175
+ type: {
176
+ type: String,
177
+ enum: ['Bank Transfer', 'Cash', 'Cheque', 'MPESA'],
178
+ required: true
179
+ },
180
+ details: {
181
+ bankName: String,
182
+ accountNumber: String,
183
+ transactionId: String,
184
+ chequeNumber: String,
185
+ mpesaTransactionId: String,
186
+ mpesaPhoneNumber: String
187
+ }
188
+ },
189
+ amount: { type: Number, required: true },
190
+ receivedBy: {
191
+ type: mongoose.Schema.Types.ObjectId,
192
+ ref: 'User',
193
+ required: true
194
+ },
195
+ receivedAt: { type: Date, default: Date.now }
196
+ }
197
+ ],
198
+ // New field to track lease edit history
199
+ editHistory: [
200
+ {
201
+ editedBy: {
202
+ type: mongoose.Schema.Types.Mixed,
203
+ ref: 'User'
204
+ },
205
+ editedAt: { type: Date, default: Date.now },
206
+ reason: { type: String, required: true },
207
+ changes: { type: Object } // Optional: Store what fields were changed
208
+ }
209
+ ],
210
+ createdBy: {
211
+ type: mongoose.Schema.Types.ObjectId,
212
+ ref: 'User'
213
+ }
214
+ }, {
215
+ timestamps: true
216
+ });
217
+
218
+ leaseAgreementSchema.index({ facilityId: 1 });
219
+
220
+ const LeaseAgreement = mongoose.model('LeaseAgreement', leaseAgreementSchema);
221
+
222
222
  module.exports = LeaseAgreement;
@@ -1,18 +1,18 @@
1
- const mongoose = require("mongoose");
2
-
3
- const LeaseTemplateSchema = new mongoose.Schema({
4
- name: { type: String, required: true },
5
- description: { type: String, required: true },
6
- templateContent: { type: String, required: true },
7
- leaseAgreementId: {
8
- type: mongoose.Schema.Types.ObjectId,
9
- ref: 'LeaseAgreement',
10
- required: false
11
- },
12
- createdBy: { type: mongoose.Schema.Types.ObjectId, ref: 'User', required: true },
13
- createdAt: { type: Date, default: Date.now },
14
- });
15
-
16
- module.exports = mongoose.model('LeaseTemplate', LeaseTemplateSchema);
17
-
1
+ const mongoose = require("mongoose");
2
+
3
+ const LeaseTemplateSchema = new mongoose.Schema({
4
+ name: { type: String, required: true },
5
+ description: { type: String, required: true },
6
+ templateContent: { type: String, required: true },
7
+ leaseAgreementId: {
8
+ type: mongoose.Schema.Types.ObjectId,
9
+ ref: 'LeaseAgreement',
10
+ required: false
11
+ },
12
+ createdBy: { type: mongoose.Schema.Types.ObjectId, ref: 'User', required: true },
13
+ createdAt: { type: Date, default: Date.now },
14
+ });
15
+
16
+ module.exports = mongoose.model('LeaseTemplate', LeaseTemplateSchema);
17
+
18
18