payservedb 8.3.2 → 8.3.3

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 (177) hide show
  1. package/.env +2 -2
  2. package/index.js +306 -306
  3. package/package.json +17 -17
  4. package/src/models/account.js +52 -52
  5. package/src/models/agent_departments.js +59 -59
  6. package/src/models/agent_notifications.js +53 -53
  7. package/src/models/agent_performance.js +127 -127
  8. package/src/models/agent_roles.js +77 -77
  9. package/src/models/agents.js +154 -154
  10. package/src/models/apilog.js +18 -18
  11. package/src/models/approvalsWorkflows.js +49 -49
  12. package/src/models/archivedapilog.js +18 -18
  13. package/src/models/asset.js +92 -92
  14. package/src/models/assetsAssignment.js +64 -64
  15. package/src/models/auditTrail.js +346 -346
  16. package/src/models/bankdetails.js +43 -47
  17. package/src/models/billerAddress.js +124 -124
  18. package/src/models/booking_invoice.js +151 -151
  19. package/src/models/bookinganalytics.js +63 -63
  20. package/src/models/bookingconfig.js +45 -45
  21. package/src/models/bookingproperty.js +122 -122
  22. package/src/models/bookingreservation.js +192 -192
  23. package/src/models/bookingrevenuerecord.js +84 -84
  24. package/src/models/budget.js +95 -95
  25. package/src/models/budgetCategory.js +19 -19
  26. package/src/models/campaigns.js +108 -108
  27. package/src/models/cashpayment.js +264 -264
  28. package/src/models/combinedUnits.js +62 -62
  29. package/src/models/common_area_electricity.js +38 -38
  30. package/src/models/common_area_generator.js +41 -41
  31. package/src/models/common_area_utility_alert.js +37 -37
  32. package/src/models/common_area_water.js +39 -39
  33. package/src/models/communication_status.js +33 -33
  34. package/src/models/communication_user_opt.js +32 -32
  35. package/src/models/company.js +53 -53
  36. package/src/models/coreBaseSettings.js +16 -16
  37. package/src/models/coreInvoiceSettings.js +100 -100
  38. package/src/models/counter_schema.js +21 -21
  39. package/src/models/country_tax.js +42 -42
  40. package/src/models/currency_settings.js +39 -39
  41. package/src/models/customer.js +210 -210
  42. package/src/models/customer_satisfaction_survey.js +278 -278
  43. package/src/models/customer_surveys.js +139 -139
  44. package/src/models/customer_tickets.js +239 -239
  45. package/src/models/dailyChecklist.js +312 -312
  46. package/src/models/default_payment_details.js +17 -17
  47. package/src/models/deliveryTimeMarks.js +18 -18
  48. package/src/models/document_type.js +19 -19
  49. package/src/models/dutyRosterChecklist.js +250 -250
  50. package/src/models/dutyroster.js +136 -136
  51. package/src/models/email.js +37 -37
  52. package/src/models/email_sms_queue.js +61 -61
  53. package/src/models/entry_exit.js +53 -53
  54. package/src/models/expense.js +99 -99
  55. package/src/models/expense_category.js +45 -45
  56. package/src/models/facility.js +62 -62
  57. package/src/models/facilityBillingPrices.js +29 -29
  58. package/src/models/facilityInvoice.js +224 -223
  59. package/src/models/facilityInvoicePayment.js +52 -47
  60. package/src/models/facilityInvoiceRecipient.js +32 -32
  61. package/src/models/facilityWalletTransactionsMetadata.js +236 -236
  62. package/src/models/facility_departements.js +20 -20
  63. package/src/models/facility_payment_details.js +20 -20
  64. package/src/models/facilityasset.js +25 -25
  65. package/src/models/faq.js +18 -18
  66. package/src/models/gl_account_double_entries.js +25 -25
  67. package/src/models/gl_accounts.js +56 -56
  68. package/src/models/gl_entries.js +49 -49
  69. package/src/models/goodsReceivedNotes.js +115 -115
  70. package/src/models/guard.js +47 -47
  71. package/src/models/handover.js +247 -247
  72. package/src/models/inspection_category.js +38 -38
  73. package/src/models/invoice.js +387 -387
  74. package/src/models/invoicing_schedule.js +36 -36
  75. package/src/models/item_inspection.js +96 -96
  76. package/src/models/knowledge_base.js +109 -109
  77. package/src/models/knowledge_base_rating.js +44 -44
  78. package/src/models/leaseagreement.js +243 -236
  79. package/src/models/leasetemplate.js +17 -17
  80. package/src/models/levy.js +223 -223
  81. package/src/models/levy_invoice_settings.js +26 -26
  82. package/src/models/levycontract.js +173 -173
  83. package/src/models/levytype.js +23 -23
  84. package/src/models/maintenance_service_vendor.js +38 -38
  85. package/src/models/maintenance_services.js +17 -17
  86. package/src/models/maintenancerequisition.js +31 -31
  87. package/src/models/master_workplan.js +32 -32
  88. package/src/models/master_workplan_child.js +34 -34
  89. package/src/models/message.js +38 -38
  90. package/src/models/module.js +21 -21
  91. package/src/models/notification.js +44 -44
  92. package/src/models/paymentTermsMarks.js +19 -19
  93. package/src/models/penalty.js +76 -76
  94. package/src/models/pendingCredentials.js +32 -32
  95. package/src/models/powerMeterCommunicationProtocol.js +17 -17
  96. package/src/models/powerMeterCustomerAccount.js +78 -78
  97. package/src/models/powerMeterCustomerBand.js +14 -14
  98. package/src/models/powerMeterDailyReading.js +30 -30
  99. package/src/models/powerMeterGateways.js +40 -40
  100. package/src/models/powerMeterMonthlyReading.js +34 -34
  101. package/src/models/powerMeterPowerCharges.js +85 -85
  102. package/src/models/powerMeterSettings.js +159 -159
  103. package/src/models/powerMeterSingleDayReading.js +32 -32
  104. package/src/models/powerMeters.js +116 -116
  105. package/src/models/powerMetersManufacturer.js +14 -14
  106. package/src/models/power_meter_account.js +81 -81
  107. package/src/models/power_meter_command_logs.js +30 -30
  108. package/src/models/power_meter_command_queue.js +33 -33
  109. package/src/models/power_meter_negative_balance.js +44 -44
  110. package/src/models/power_prepaid_credits.js +47 -47
  111. package/src/models/power_prepaid_debits.js +53 -53
  112. package/src/models/power_prepaid_orders.js +78 -78
  113. package/src/models/power_sms_notification.js +26 -26
  114. package/src/models/propertyManagerContract.js +556 -556
  115. package/src/models/propertyManagerRevenue.js +195 -195
  116. package/src/models/purchaseOrderInvoice.js +74 -74
  117. package/src/models/purchase_order.js +213 -213
  118. package/src/models/purchase_request.js +110 -110
  119. package/src/models/refresh_token.js +23 -23
  120. package/src/models/reminder.js +197 -197
  121. package/src/models/report.js +13 -13
  122. package/src/models/resident.js +121 -121
  123. package/src/models/rfq_details.js +131 -131
  124. package/src/models/rfq_response.js +153 -153
  125. package/src/models/service_charge_invoice_upload.js +42 -42
  126. package/src/models/service_charge_payments.js +27 -27
  127. package/src/models/servicerequest.js +55 -55
  128. package/src/models/settings.js +62 -62
  129. package/src/models/short_urls.js +21 -21
  130. package/src/models/smart_meter_daily_consumption.js +44 -44
  131. package/src/models/sms_africastalking.js +20 -20
  132. package/src/models/sms_balance_notification.js +26 -26
  133. package/src/models/sms_meliora.js +20 -20
  134. package/src/models/staff.js +36 -36
  135. package/src/models/stocksandspare.js +161 -161
  136. package/src/models/suppliers.js +74 -74
  137. package/src/models/tickets.js +173 -173
  138. package/src/models/tickets_category.js +72 -72
  139. package/src/models/unitManagementTemplate.js +44 -44
  140. package/src/models/unitasset.js +25 -25
  141. package/src/models/units.js +118 -118
  142. package/src/models/user.js +186 -186
  143. package/src/models/valueaddedservices.js +79 -79
  144. package/src/models/vas_invoices_upload.js +50 -50
  145. package/src/models/vas_payments.js +24 -24
  146. package/src/models/vasinvoice.js +192 -192
  147. package/src/models/vasvendor.js +57 -57
  148. package/src/models/visitLog.js +95 -95
  149. package/src/models/visitor.js +67 -67
  150. package/src/models/waitlist.js +45 -45
  151. package/src/models/wallet.js +44 -44
  152. package/src/models/wallet_transactions.js +50 -50
  153. package/src/models/water_invoice.js +351 -351
  154. package/src/models/water_meter_Command_Queue.js +33 -33
  155. package/src/models/water_meter_account.js +82 -82
  156. package/src/models/water_meter_billing.js +58 -58
  157. package/src/models/water_meter_communication.js +17 -17
  158. package/src/models/water_meter_communication_logs.js +39 -39
  159. package/src/models/water_meter_concentrator.js +70 -70
  160. package/src/models/water_meter_daily_history.js +32 -32
  161. package/src/models/water_meter_high_risk.js +36 -36
  162. package/src/models/water_meter_iot_cards.js +34 -34
  163. package/src/models/water_meter_manufacturer.js +35 -35
  164. package/src/models/water_meter_monthly_history.js +36 -36
  165. package/src/models/water_meter_negative_amounts.js +44 -44
  166. package/src/models/water_meter_settings.js +276 -276
  167. package/src/models/water_meter_single_day_history.js +34 -34
  168. package/src/models/water_meter_size.js +15 -15
  169. package/src/models/water_meters.js +133 -133
  170. package/src/models/water_meters_delivery.js +76 -76
  171. package/src/models/water_prepaid_credit.js +47 -47
  172. package/src/models/water_prepaid_debit.js +50 -50
  173. package/src/models/workorder.js +49 -49
  174. package/.idea/material_theme_project_new.xml +0 -12
  175. package/.idea/modules.xml +0 -8
  176. package/.idea/psdb.iml +0 -12
  177. package/.idea/vcs.xml +0 -6
@@ -1,174 +1,174 @@
1
- const mongoose = require('mongoose');
2
- const Schema = mongoose.Schema;
3
-
4
- const LevyContractSchema = new Schema(
5
- {
6
- contractName: {
7
- type: String,
8
- required: [true, 'Contract name is required']
9
- },
10
- levyId: {
11
- type: mongoose.Schema.Types.ObjectId,
12
- ref: 'Levy',
13
- required: [true, 'Levy ID is required']
14
- },
15
- customerId: {
16
- type: mongoose.Schema.Types.ObjectId,
17
- ref: 'Customer',
18
- required: [true, 'Customer ID is required']
19
- },
20
- unitId: {
21
- type: mongoose.Schema.Types.ObjectId,
22
- ref: 'Unit',
23
- required: [true, 'Unit ID is required']
24
- },
25
- amount: {
26
- type: Number,
27
- required: [true, 'Amount is required'],
28
- min: [0, 'Amount cannot be negative']
29
- },
30
- startDate: {
31
- type: Date,
32
- required: [true, 'Start date is required']
33
- },
34
- endDate: {
35
- type: Date,
36
- required: [true, 'End date is required']
37
- },
38
- status: {
39
- type: String,
40
- enum: ['Active', 'Inactive', 'Completed', 'Suspended', 'Terminated'],
41
- default: 'Active',
42
- required: [true, 'Status is required']
43
- },
44
- balanceBroughtForward: {
45
- type: Number,
46
- default: 0
47
- },
48
- paymentFrequency: {
49
- type: String,
50
- enum: ['Daily', 'Weekly', 'Bi-Weekly', 'Monthly', 'Quarterly', 'Semi-Annually', 'Annually'],
51
- default: 'Monthly'
52
- },
53
- facilityId: {
54
- type: mongoose.Schema.Types.ObjectId,
55
- ref: 'Facility',
56
- required: [true, 'Facility ID is required']
57
- },
58
- lastInvoiceDate: {
59
- type: Date
60
- },
61
- createdBy: {
62
- type: mongoose.Schema.Types.ObjectId,
63
- ref: 'User'
64
- },
65
- updatedBy: {
66
- type: mongoose.Schema.Types.ObjectId,
67
- ref: 'User'
68
- },
69
- // New termination-specific fields
70
- terminationDate: {
71
- type: Date
72
- },
73
- terminationReason: {
74
- type: String
75
- },
76
- terminatedBy: {
77
- type: mongoose.Schema.Types.ObjectId,
78
- ref: 'User'
79
- },
80
- // Disable/reactivation tracking
81
- disabledDate: {
82
- type: Date
83
- },
84
- disabledBy: {
85
- type: mongoose.Schema.Types.ObjectId,
86
- ref: 'User'
87
- },
88
- disabledReason: {
89
- type: String
90
- },
91
- reactivatedDate: {
92
- type: Date
93
- },
94
- reactivatedBy: {
95
- type: mongoose.Schema.Types.ObjectId,
96
- ref: 'User'
97
- },
98
- lastInvoiceYearMonth: {
99
- type: String,
100
- default: null
101
- // Format: "2025-09", "2025-10", etc.
102
- }
103
- },
104
- {
105
- timestamps: true,
106
- toJSON: { virtuals: true },
107
- toObject: { virtuals: true }
108
- }
109
- );
110
-
111
- // Virtual populate for Levy details
112
- LevyContractSchema.virtual('levy', {
113
- ref: 'Levy',
114
- localField: 'levyId',
115
- foreignField: '_id',
116
- justOne: true
117
- });
118
-
119
- // Virtual populate for Customer details
120
- LevyContractSchema.virtual('customer', {
121
- ref: 'Customer',
122
- localField: 'customerId',
123
- foreignField: '_id',
124
- justOne: true
125
- });
126
-
127
- // Virtual populate for Unit details
128
- LevyContractSchema.virtual('unit', {
129
- ref: 'Unit',
130
- localField: 'unitId',
131
- foreignField: '_id',
132
- justOne: true
133
- });
134
-
135
- // Pre-save middleware to ensure endDate is after startDate
136
- LevyContractSchema.pre('save', function (next) {
137
- if (this.startDate && this.endDate && this.startDate >= this.endDate) {
138
- next(new Error('End date must be after start date'));
139
- } else {
140
- next();
141
- }
142
- });
143
-
144
- // Pre-save middleware to handle termination and disable date logic
145
- LevyContractSchema.pre('save', function (next) {
146
- // Set termination date when status changes to Terminated
147
- if (this.status === 'Terminated' && !this.terminationDate) {
148
- this.terminationDate = new Date();
149
- }
150
-
151
- // Set disabled date when status changes to Inactive
152
- if (this.status === 'Inactive' && !this.disabledDate && this.isModified('status')) {
153
- this.disabledDate = new Date();
154
- }
155
-
156
- // Set reactivated date when status changes from Inactive to Active
157
- if (this.status === 'Active' && this.isModified('status') && this.disabledDate) {
158
- this.reactivatedDate = new Date();
159
- }
160
-
161
- next();
162
- });
163
-
164
- // Index for efficient queries
165
- LevyContractSchema.index({ levyId: 1, unitId: 1, status: 1 });
166
- LevyContractSchema.index({ facilityId: 1 });
167
- LevyContractSchema.index({ customerId: 1 });
168
- LevyContractSchema.index({ status: 1 });
169
- LevyContractSchema.index({ terminationDate: 1 });
170
-
171
- module.exports = {
172
- schema: LevyContractSchema,
173
- name: 'LevyContract'
1
+ const mongoose = require('mongoose');
2
+ const Schema = mongoose.Schema;
3
+
4
+ const LevyContractSchema = new Schema(
5
+ {
6
+ contractName: {
7
+ type: String,
8
+ required: [true, 'Contract name is required']
9
+ },
10
+ levyId: {
11
+ type: mongoose.Schema.Types.ObjectId,
12
+ ref: 'Levy',
13
+ required: [true, 'Levy ID is required']
14
+ },
15
+ customerId: {
16
+ type: mongoose.Schema.Types.ObjectId,
17
+ ref: 'Customer',
18
+ required: [true, 'Customer ID is required']
19
+ },
20
+ unitId: {
21
+ type: mongoose.Schema.Types.ObjectId,
22
+ ref: 'Unit',
23
+ required: [true, 'Unit ID is required']
24
+ },
25
+ amount: {
26
+ type: Number,
27
+ required: [true, 'Amount is required'],
28
+ min: [0, 'Amount cannot be negative']
29
+ },
30
+ startDate: {
31
+ type: Date,
32
+ required: [true, 'Start date is required']
33
+ },
34
+ endDate: {
35
+ type: Date,
36
+ required: [true, 'End date is required']
37
+ },
38
+ status: {
39
+ type: String,
40
+ enum: ['Active', 'Inactive', 'Completed', 'Suspended', 'Terminated'],
41
+ default: 'Active',
42
+ required: [true, 'Status is required']
43
+ },
44
+ balanceBroughtForward: {
45
+ type: Number,
46
+ default: 0
47
+ },
48
+ paymentFrequency: {
49
+ type: String,
50
+ enum: ['Daily', 'Weekly', 'Bi-Weekly', 'Monthly', 'Quarterly', 'Semi-Annually', 'Annually'],
51
+ default: 'Monthly'
52
+ },
53
+ facilityId: {
54
+ type: mongoose.Schema.Types.ObjectId,
55
+ ref: 'Facility',
56
+ required: [true, 'Facility ID is required']
57
+ },
58
+ lastInvoiceDate: {
59
+ type: Date
60
+ },
61
+ createdBy: {
62
+ type: mongoose.Schema.Types.ObjectId,
63
+ ref: 'User'
64
+ },
65
+ updatedBy: {
66
+ type: mongoose.Schema.Types.ObjectId,
67
+ ref: 'User'
68
+ },
69
+ // New termination-specific fields
70
+ terminationDate: {
71
+ type: Date
72
+ },
73
+ terminationReason: {
74
+ type: String
75
+ },
76
+ terminatedBy: {
77
+ type: mongoose.Schema.Types.ObjectId,
78
+ ref: 'User'
79
+ },
80
+ // Disable/reactivation tracking
81
+ disabledDate: {
82
+ type: Date
83
+ },
84
+ disabledBy: {
85
+ type: mongoose.Schema.Types.ObjectId,
86
+ ref: 'User'
87
+ },
88
+ disabledReason: {
89
+ type: String
90
+ },
91
+ reactivatedDate: {
92
+ type: Date
93
+ },
94
+ reactivatedBy: {
95
+ type: mongoose.Schema.Types.ObjectId,
96
+ ref: 'User'
97
+ },
98
+ lastInvoiceYearMonth: {
99
+ type: String,
100
+ default: null
101
+ // Format: "2025-09", "2025-10", etc.
102
+ }
103
+ },
104
+ {
105
+ timestamps: true,
106
+ toJSON: { virtuals: true },
107
+ toObject: { virtuals: true }
108
+ }
109
+ );
110
+
111
+ // Virtual populate for Levy details
112
+ LevyContractSchema.virtual('levy', {
113
+ ref: 'Levy',
114
+ localField: 'levyId',
115
+ foreignField: '_id',
116
+ justOne: true
117
+ });
118
+
119
+ // Virtual populate for Customer details
120
+ LevyContractSchema.virtual('customer', {
121
+ ref: 'Customer',
122
+ localField: 'customerId',
123
+ foreignField: '_id',
124
+ justOne: true
125
+ });
126
+
127
+ // Virtual populate for Unit details
128
+ LevyContractSchema.virtual('unit', {
129
+ ref: 'Unit',
130
+ localField: 'unitId',
131
+ foreignField: '_id',
132
+ justOne: true
133
+ });
134
+
135
+ // Pre-save middleware to ensure endDate is after startDate
136
+ LevyContractSchema.pre('save', function (next) {
137
+ if (this.startDate && this.endDate && this.startDate >= this.endDate) {
138
+ next(new Error('End date must be after start date'));
139
+ } else {
140
+ next();
141
+ }
142
+ });
143
+
144
+ // Pre-save middleware to handle termination and disable date logic
145
+ LevyContractSchema.pre('save', function (next) {
146
+ // Set termination date when status changes to Terminated
147
+ if (this.status === 'Terminated' && !this.terminationDate) {
148
+ this.terminationDate = new Date();
149
+ }
150
+
151
+ // Set disabled date when status changes to Inactive
152
+ if (this.status === 'Inactive' && !this.disabledDate && this.isModified('status')) {
153
+ this.disabledDate = new Date();
154
+ }
155
+
156
+ // Set reactivated date when status changes from Inactive to Active
157
+ if (this.status === 'Active' && this.isModified('status') && this.disabledDate) {
158
+ this.reactivatedDate = new Date();
159
+ }
160
+
161
+ next();
162
+ });
163
+
164
+ // Index for efficient queries
165
+ LevyContractSchema.index({ levyId: 1, unitId: 1, status: 1 });
166
+ LevyContractSchema.index({ facilityId: 1 });
167
+ LevyContractSchema.index({ customerId: 1 });
168
+ LevyContractSchema.index({ status: 1 });
169
+ LevyContractSchema.index({ terminationDate: 1 });
170
+
171
+ module.exports = {
172
+ schema: LevyContractSchema,
173
+ name: 'LevyContract'
174
174
  };
@@ -1,23 +1,23 @@
1
- const mongoose = require('mongoose');
2
-
3
- // Define the schema for LevyType
4
- const levyTypeSchema = new mongoose.Schema({
5
- name: {
6
- type: String,
7
- required: true,
8
- trim: true,
9
- minlength: [1, 'Levy type name must be at least 1 character long']
10
- },
11
- facilityId: {
12
- type: mongoose.Schema.Types.ObjectId,
13
- ref: 'Facility',
14
- required: [true, 'Facility ID is required']
15
- }
16
- }, {
17
- timestamps: true // Automatically add createdAt and updatedAt fields
18
- });
19
-
20
- // Compile the model from the schema
21
- const LevyType = mongoose.model('LevyType', levyTypeSchema);
22
-
23
- module.exports = LevyType;
1
+ const mongoose = require('mongoose');
2
+
3
+ // Define the schema for LevyType
4
+ const levyTypeSchema = new mongoose.Schema({
5
+ name: {
6
+ type: String,
7
+ required: true,
8
+ trim: true,
9
+ minlength: [1, 'Levy type name must be at least 1 character long']
10
+ },
11
+ facilityId: {
12
+ type: mongoose.Schema.Types.ObjectId,
13
+ ref: 'Facility',
14
+ required: [true, 'Facility ID is required']
15
+ }
16
+ }, {
17
+ timestamps: true // Automatically add createdAt and updatedAt fields
18
+ });
19
+
20
+ // Compile the model from the schema
21
+ const LevyType = mongoose.model('LevyType', levyTypeSchema);
22
+
23
+ module.exports = LevyType;
@@ -1,38 +1,38 @@
1
- const mongoose = require('mongoose');
2
-
3
- const serviceVendorSchema = new mongoose.Schema({
4
- name: {
5
- type: String,
6
- required: true,
7
- },
8
- service: {
9
- type: String,
10
- required: true,
11
- },
12
- agreement: {
13
- type: String,
14
- },
15
- dates: {
16
- type: [Date],
17
- },
18
- assignedAssets: [{
19
- type: mongoose.Schema.Types.ObjectId,
20
- ref: 'Asset',
21
- }],
22
- facilityId: {
23
- type: mongoose.Schema.Types.ObjectId,
24
- ref: 'Facility',
25
- required: true,
26
- },
27
- phone: {
28
- type: String,
29
- required: true,
30
- },
31
- email: {
32
- type: String,
33
- },
34
- }, {
35
- timestamps: true,
36
- });
37
-
38
- module.exports = mongoose.model('ServiceVendor', serviceVendorSchema);
1
+ const mongoose = require('mongoose');
2
+
3
+ const serviceVendorSchema = new mongoose.Schema({
4
+ name: {
5
+ type: String,
6
+ required: true,
7
+ },
8
+ service: {
9
+ type: String,
10
+ required: true,
11
+ },
12
+ agreement: {
13
+ type: String,
14
+ },
15
+ dates: {
16
+ type: [Date],
17
+ },
18
+ assignedAssets: [{
19
+ type: mongoose.Schema.Types.ObjectId,
20
+ ref: 'Asset',
21
+ }],
22
+ facilityId: {
23
+ type: mongoose.Schema.Types.ObjectId,
24
+ ref: 'Facility',
25
+ required: true,
26
+ },
27
+ phone: {
28
+ type: String,
29
+ required: true,
30
+ },
31
+ email: {
32
+ type: String,
33
+ },
34
+ }, {
35
+ timestamps: true,
36
+ });
37
+
38
+ module.exports = mongoose.model('ServiceVendor', serviceVendorSchema);
@@ -1,17 +1,17 @@
1
- const mongoose = require('mongoose');
2
-
3
- const maintenanceServicesSchema = new mongoose.Schema({
4
- name: {
5
- type: String,
6
- required: true,
7
- },
8
- facilityId: {
9
- type: mongoose.Schema.Types.ObjectId,
10
- ref: 'Facility',
11
- required: true,
12
- },
13
- }, {
14
- timestamps: true,
15
- });
16
-
17
- module.exports = mongoose.model('MaintenanceServices', maintenanceServicesSchema);
1
+ const mongoose = require('mongoose');
2
+
3
+ const maintenanceServicesSchema = new mongoose.Schema({
4
+ name: {
5
+ type: String,
6
+ required: true,
7
+ },
8
+ facilityId: {
9
+ type: mongoose.Schema.Types.ObjectId,
10
+ ref: 'Facility',
11
+ required: true,
12
+ },
13
+ }, {
14
+ timestamps: true,
15
+ });
16
+
17
+ module.exports = mongoose.model('MaintenanceServices', maintenanceServicesSchema);
@@ -1,31 +1,31 @@
1
- const mongoose = require('mongoose');
2
-
3
- const requisitionSchema = new mongoose.Schema({
4
- facilityId: {
5
- type: mongoose.Schema.Types.ObjectId,
6
- ref: 'Facility',
7
- required: [true, 'Facility ID is required']
8
- },
9
- stockId: {
10
- type: mongoose.Schema.Types.ObjectId,
11
- ref: 'Stocksandspare',
12
- required: [true, 'stock ID is required']
13
- },
14
- workId: {
15
- type: mongoose.Schema.Types.ObjectId,
16
- ref: 'WorkOrder'
17
- },
18
- description: {
19
- type: String,
20
- required: true,
21
- },
22
- quantity: {
23
- type: Number,
24
- required: true,
25
- min: 1,
26
- }
27
- }, {
28
- timestamps: true,
29
- });
30
-
31
- module.exports = mongoose.model('StockRequisition', requisitionSchema);
1
+ const mongoose = require('mongoose');
2
+
3
+ const requisitionSchema = new mongoose.Schema({
4
+ facilityId: {
5
+ type: mongoose.Schema.Types.ObjectId,
6
+ ref: 'Facility',
7
+ required: [true, 'Facility ID is required']
8
+ },
9
+ stockId: {
10
+ type: mongoose.Schema.Types.ObjectId,
11
+ ref: 'Stocksandspare',
12
+ required: [true, 'stock ID is required']
13
+ },
14
+ workId: {
15
+ type: mongoose.Schema.Types.ObjectId,
16
+ ref: 'WorkOrder'
17
+ },
18
+ description: {
19
+ type: String,
20
+ required: true,
21
+ },
22
+ quantity: {
23
+ type: Number,
24
+ required: true,
25
+ min: 1,
26
+ }
27
+ }, {
28
+ timestamps: true,
29
+ });
30
+
31
+ module.exports = mongoose.model('StockRequisition', requisitionSchema);
@@ -1,32 +1,32 @@
1
- const mongoose = require("mongoose");
2
-
3
- const masterWorkplanSchema = new mongoose.Schema({
4
- facility: {
5
- type: mongoose.Schema.Types.ObjectId,
6
- ref: "Facility",
7
- required: true,
8
- },
9
- title: {
10
- type: String,
11
- required: true,
12
- unique: true,
13
- },
14
- description: {
15
- type: String,
16
- required: true,
17
- },
18
- life: {
19
- type: String,
20
- enum: ["Active", "Inactive"],
21
- default: "Active",
22
- },
23
- status: {
24
- type: String,
25
- enum: ["Approved", "Rejected", "Pending"],
26
- default: "Approved",
27
- },
28
- });
29
-
30
- const MasterWorkplan = mongoose.model("MasterWorkplan", masterWorkplanSchema);
31
-
32
- module.exports = MasterWorkplan;
1
+ const mongoose = require("mongoose");
2
+
3
+ const masterWorkplanSchema = new mongoose.Schema({
4
+ facility: {
5
+ type: mongoose.Schema.Types.ObjectId,
6
+ ref: "Facility",
7
+ required: true,
8
+ },
9
+ title: {
10
+ type: String,
11
+ required: true,
12
+ unique: true,
13
+ },
14
+ description: {
15
+ type: String,
16
+ required: true,
17
+ },
18
+ life: {
19
+ type: String,
20
+ enum: ["Active", "Inactive"],
21
+ default: "Active",
22
+ },
23
+ status: {
24
+ type: String,
25
+ enum: ["Approved", "Rejected", "Pending"],
26
+ default: "Approved",
27
+ },
28
+ });
29
+
30
+ const MasterWorkplan = mongoose.model("MasterWorkplan", masterWorkplanSchema);
31
+
32
+ module.exports = MasterWorkplan;