payservedb 7.9.1 → 7.9.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 (160) hide show
  1. package/.env +2 -2
  2. package/.idea/material_theme_project_new.xml +11 -11
  3. package/.idea/modules.xml +7 -7
  4. package/.idea/psdb.iml +11 -11
  5. package/.idea/vcs.xml +5 -5
  6. package/index.js +289 -287
  7. package/package.json +17 -17
  8. package/src/models/account.js +35 -35
  9. package/src/models/apilog.js +18 -18
  10. package/src/models/approvalsWorkflows.js +49 -49
  11. package/src/models/archivedapilog.js +18 -18
  12. package/src/models/asset.js +92 -92
  13. package/src/models/assetsAssignment.js +64 -64
  14. package/src/models/auditTrail.js +346 -346
  15. package/src/models/bankdetails.js +43 -43
  16. package/src/models/billerAddress.js +124 -124
  17. package/src/models/booking_invoice.js +151 -151
  18. package/src/models/bookinganalytics.js +63 -63
  19. package/src/models/bookingconfig.js +45 -45
  20. package/src/models/bookingproperty.js +122 -122
  21. package/src/models/bookingreservation.js +192 -192
  22. package/src/models/bookingrevenuerecord.js +84 -84
  23. package/src/models/budget.js +95 -95
  24. package/src/models/budgetCategory.js +19 -19
  25. package/src/models/campaigns.js +94 -94
  26. package/src/models/cashpayment.js +264 -264
  27. package/src/models/combinedUnits.js +62 -62
  28. package/src/models/common_area_electricity.js +38 -38
  29. package/src/models/common_area_generator.js +41 -41
  30. package/src/models/common_area_utility_alert.js +37 -37
  31. package/src/models/common_area_water.js +39 -39
  32. package/src/models/communication_status.js +33 -33
  33. package/src/models/company.js +53 -53
  34. package/src/models/coreBaseSettings.js +16 -16
  35. package/src/models/coreInvoiceSettings.js +100 -100
  36. package/src/models/country_tax.js +42 -42
  37. package/src/models/currency_settings.js +39 -39
  38. package/src/models/customer.js +208 -208
  39. package/src/models/dailyChecklist.js +312 -312
  40. package/src/models/default_payment_details.js +17 -17
  41. package/src/models/deliveryTimeMarks.js +18 -18
  42. package/src/models/dutyRosterChecklist.js +250 -250
  43. package/src/models/dutyroster.js +136 -136
  44. package/src/models/email.js +37 -37
  45. package/src/models/email_sms_queue.js +61 -61
  46. package/src/models/entry_exit.js +53 -53
  47. package/src/models/expense.js +99 -99
  48. package/src/models/expense_category.js +45 -45
  49. package/src/models/facility.js +62 -62
  50. package/src/models/facilityBillingPrices.js +30 -0
  51. package/src/models/facilityInvoice.js +223 -223
  52. package/src/models/facilityInvoicePayment.js +47 -0
  53. package/src/models/facilityInvoiceRecipient.js +32 -32
  54. package/src/models/facilityWalletTransactionsMetadata.js +236 -236
  55. package/src/models/facility_departements.js +20 -20
  56. package/src/models/facility_payment_details.js +20 -20
  57. package/src/models/facilityasset.js +25 -25
  58. package/src/models/faq.js +18 -18
  59. package/src/models/gl_account_double_entries.js +25 -25
  60. package/src/models/gl_accounts.js +56 -56
  61. package/src/models/gl_entries.js +49 -49
  62. package/src/models/goodsReceivedNotes.js +115 -115
  63. package/src/models/guard.js +47 -47
  64. package/src/models/handover.js +246 -246
  65. package/src/models/invoice.js +336 -336
  66. package/src/models/item_inspection.js +67 -67
  67. package/src/models/leaseagreement.js +226 -226
  68. package/src/models/leasetemplate.js +17 -17
  69. package/src/models/levy.js +206 -206
  70. package/src/models/levy_invoice_settings.js +26 -26
  71. package/src/models/levycontract.js +168 -168
  72. package/src/models/levytype.js +23 -23
  73. package/src/models/maintenance_service_vendor.js +38 -38
  74. package/src/models/maintenance_services.js +17 -17
  75. package/src/models/maintenancerequisition.js +31 -31
  76. package/src/models/master_workplan.js +32 -32
  77. package/src/models/master_workplan_child.js +34 -34
  78. package/src/models/message.js +38 -38
  79. package/src/models/module.js +21 -21
  80. package/src/models/notification.js +44 -44
  81. package/src/models/paymentTermsMarks.js +19 -19
  82. package/src/models/penalty.js +76 -76
  83. package/src/models/pendingCredentials.js +32 -32
  84. package/src/models/powerMeterCommunicationProtocol.js +17 -17
  85. package/src/models/powerMeterCustomerAccount.js +78 -78
  86. package/src/models/powerMeterCustomerBand.js +14 -14
  87. package/src/models/powerMeterDailyReading.js +30 -30
  88. package/src/models/powerMeterGateways.js +40 -40
  89. package/src/models/powerMeterMonthlyReading.js +34 -34
  90. package/src/models/powerMeterPowerCharges.js +85 -85
  91. package/src/models/powerMeterSettings.js +159 -159
  92. package/src/models/powerMeterSingleDayReading.js +32 -32
  93. package/src/models/powerMeters.js +116 -116
  94. package/src/models/powerMetersManufacturer.js +14 -14
  95. package/src/models/power_meter_account.js +81 -81
  96. package/src/models/power_meter_command_logs.js +30 -30
  97. package/src/models/power_meter_command_queue.js +33 -33
  98. package/src/models/power_meter_negative_balance.js +44 -44
  99. package/src/models/power_prepaid_credits.js +47 -47
  100. package/src/models/power_prepaid_debits.js +50 -50
  101. package/src/models/power_prepaid_orders.js +78 -78
  102. package/src/models/power_sms_notification.js +26 -26
  103. package/src/models/propertyManagerContract.js +556 -556
  104. package/src/models/propertyManagerRevenue.js +195 -195
  105. package/src/models/purchaseOrderInvoice.js +74 -74
  106. package/src/models/purchase_order.js +213 -213
  107. package/src/models/purchase_request.js +110 -110
  108. package/src/models/refresh_token.js +23 -23
  109. package/src/models/reminder.js +197 -197
  110. package/src/models/report.js +13 -13
  111. package/src/models/resident.js +121 -121
  112. package/src/models/rfq_details.js +131 -131
  113. package/src/models/rfq_response.js +153 -153
  114. package/src/models/service_charge_invoice_upload.js +42 -42
  115. package/src/models/service_charge_payments.js +27 -27
  116. package/src/models/servicerequest.js +55 -55
  117. package/src/models/settings.js +62 -62
  118. package/src/models/smart_meter_daily_consumption.js +44 -44
  119. package/src/models/sms_africastalking.js +20 -20
  120. package/src/models/sms_balance_notification.js +26 -26
  121. package/src/models/sms_meliora.js +20 -20
  122. package/src/models/staff.js +36 -36
  123. package/src/models/stocksandspare.js +161 -161
  124. package/src/models/suppliers.js +74 -74
  125. package/src/models/tickets.js +121 -121
  126. package/src/models/unitManagementTemplate.js +44 -44
  127. package/src/models/unitasset.js +25 -25
  128. package/src/models/units.js +117 -117
  129. package/src/models/user.js +186 -186
  130. package/src/models/valueaddedservices.js +79 -79
  131. package/src/models/vas_invoices_upload.js +50 -50
  132. package/src/models/vas_payments.js +24 -24
  133. package/src/models/vasinvoice.js +192 -192
  134. package/src/models/vasvendor.js +57 -57
  135. package/src/models/visitLog.js +95 -95
  136. package/src/models/visitor.js +67 -67
  137. package/src/models/waitlist.js +45 -45
  138. package/src/models/wallet.js +44 -44
  139. package/src/models/wallet_transactions.js +50 -50
  140. package/src/models/water_invoice.js +351 -351
  141. package/src/models/water_meter_Command_Queue.js +33 -33
  142. package/src/models/water_meter_account.js +82 -82
  143. package/src/models/water_meter_billing.js +58 -58
  144. package/src/models/water_meter_communication.js +17 -17
  145. package/src/models/water_meter_communication_logs.js +39 -39
  146. package/src/models/water_meter_concentrator.js +66 -66
  147. package/src/models/water_meter_daily_history.js +32 -32
  148. package/src/models/water_meter_high_risk.js +36 -36
  149. package/src/models/water_meter_iot_cards.js +34 -34
  150. package/src/models/water_meter_manufacturer.js +35 -35
  151. package/src/models/water_meter_monthly_history.js +36 -36
  152. package/src/models/water_meter_negative_amounts.js +44 -44
  153. package/src/models/water_meter_settings.js +261 -261
  154. package/src/models/water_meter_single_day_history.js +34 -34
  155. package/src/models/water_meter_size.js +15 -15
  156. package/src/models/water_meters.js +133 -133
  157. package/src/models/water_meters_delivery.js +76 -76
  158. package/src/models/water_prepaid_credit.js +47 -47
  159. package/src/models/water_prepaid_debit.js +50 -50
  160. package/src/models/workorder.js +49 -49
@@ -1,34 +1,34 @@
1
- const mongoose = require("mongoose");
2
-
3
- const MasterWorkplanChildSchema = new mongoose.Schema(
4
- {
5
- name: {
6
- type: String,
7
- required: true,
8
- },
9
- description: {
10
- type: String,
11
- required: true,
12
- },
13
- parent: {
14
- type: mongoose.Schema.Types.ObjectId,
15
- ref: "MasterWorkplan",
16
- required: true,
17
- },
18
- status: {
19
- type: String,
20
- enum: ["Completed", "Pending", "In Progress", "Undone"],
21
- default: "Pending",
22
- },
23
- },
24
- {
25
- timestamps: true,
26
- },
27
- );
28
-
29
- const MasterWorkplanChild = mongoose.model(
30
- "ChildWorkplan",
31
- MasterWorkplanChildSchema,
32
- );
33
-
34
- module.exports = MasterWorkplanChild;
1
+ const mongoose = require("mongoose");
2
+
3
+ const MasterWorkplanChildSchema = new mongoose.Schema(
4
+ {
5
+ name: {
6
+ type: String,
7
+ required: true,
8
+ },
9
+ description: {
10
+ type: String,
11
+ required: true,
12
+ },
13
+ parent: {
14
+ type: mongoose.Schema.Types.ObjectId,
15
+ ref: "MasterWorkplan",
16
+ required: true,
17
+ },
18
+ status: {
19
+ type: String,
20
+ enum: ["Completed", "Pending", "In Progress", "Undone"],
21
+ default: "Pending",
22
+ },
23
+ },
24
+ {
25
+ timestamps: true,
26
+ },
27
+ );
28
+
29
+ const MasterWorkplanChild = mongoose.model(
30
+ "ChildWorkplan",
31
+ MasterWorkplanChildSchema,
32
+ );
33
+
34
+ module.exports = MasterWorkplanChild;
@@ -1,39 +1,39 @@
1
- const mongoose = require('mongoose');
2
- const MessageSchema = mongoose.Schema({
3
- type: {
4
- type: String,
5
- required: true
6
- },
7
- recipient: {
8
- type: String,
9
- required: true,
10
- },
11
- subject: {
12
- type: String,
13
- required: false
14
- },
15
- body: {
16
- type: String,
17
- required: true
18
- },
19
- sentOn: {
20
- type: Date,
21
- required: false
22
- },
23
- createdOn:{
24
- type:Date,
25
- required:true
26
- },
27
- status: {
28
- type: String,
29
- required: true,
30
- enum: ['Not Sent', 'In Queue', 'Sent']
31
- },
32
- messageId: {
33
- type: String,
34
- required: false
35
- }
36
-
37
- })
38
- const Message = mongoose.model('Message', MessageSchema);
1
+ const mongoose = require('mongoose');
2
+ const MessageSchema = mongoose.Schema({
3
+ type: {
4
+ type: String,
5
+ required: true
6
+ },
7
+ recipient: {
8
+ type: String,
9
+ required: true,
10
+ },
11
+ subject: {
12
+ type: String,
13
+ required: false
14
+ },
15
+ body: {
16
+ type: String,
17
+ required: true
18
+ },
19
+ sentOn: {
20
+ type: Date,
21
+ required: false
22
+ },
23
+ createdOn:{
24
+ type:Date,
25
+ required:true
26
+ },
27
+ status: {
28
+ type: String,
29
+ required: true,
30
+ enum: ['Not Sent', 'In Queue', 'Sent']
31
+ },
32
+ messageId: {
33
+ type: String,
34
+ required: false
35
+ }
36
+
37
+ })
38
+ const Message = mongoose.model('Message', MessageSchema);
39
39
  module.exports = Message
@@ -1,21 +1,21 @@
1
- const mongoose = require('mongoose');
2
-
3
- // Define the schema for modules
4
- const moduleSchema = new mongoose.Schema({
5
- name: {
6
- type: String,
7
- required: [true, 'Module name is required'],
8
- trim: true,
9
- unique: true // Ensure module name is unique
10
- }
11
- }, {
12
- timestamps: true // Automatically add createdAt and updatedAt fields
13
- });
14
-
15
- // Indexes for improved performance
16
- moduleSchema.index({ name: 1 });
17
-
18
- // Compile the model from the schema
19
- const Module = mongoose.model('Module', moduleSchema);
20
-
21
- module.exports = Module;
1
+ const mongoose = require('mongoose');
2
+
3
+ // Define the schema for modules
4
+ const moduleSchema = new mongoose.Schema({
5
+ name: {
6
+ type: String,
7
+ required: [true, 'Module name is required'],
8
+ trim: true,
9
+ unique: true // Ensure module name is unique
10
+ }
11
+ }, {
12
+ timestamps: true // Automatically add createdAt and updatedAt fields
13
+ });
14
+
15
+ // Indexes for improved performance
16
+ moduleSchema.index({ name: 1 });
17
+
18
+ // Compile the model from the schema
19
+ const Module = mongoose.model('Module', moduleSchema);
20
+
21
+ module.exports = Module;
@@ -1,44 +1,44 @@
1
- const mongoose = require("mongoose");
2
-
3
- // Define the schema for Notifications
4
- const notificationSchema = new mongoose.Schema(
5
- {
6
- userId: {
7
- type: mongoose.Schema.Types.ObjectId,
8
- ref: "User",
9
- required: true,
10
- },
11
- facilityId: {
12
- type: mongoose.Schema.Types.ObjectId,
13
- ref: "Facility",
14
- required: true,
15
- },
16
- message: {
17
- type: String,
18
- required: true,
19
- },
20
- read: {
21
- type: Boolean,
22
- default: false,
23
- },
24
- dateRead: {
25
- type: Date,
26
- default: null,
27
- },
28
- dateUpdated: {
29
- type: Date,
30
- default: null,
31
- },
32
- dateSent: {
33
- type: Date,
34
- required: true,
35
- },
36
- },
37
- {
38
- timestamps: true,
39
- },
40
- );
41
-
42
- const Notification = mongoose.model("Notification", notificationSchema);
43
-
44
- module.exports = Notification;
1
+ const mongoose = require("mongoose");
2
+
3
+ // Define the schema for Notifications
4
+ const notificationSchema = new mongoose.Schema(
5
+ {
6
+ userId: {
7
+ type: mongoose.Schema.Types.ObjectId,
8
+ ref: "User",
9
+ required: true,
10
+ },
11
+ facilityId: {
12
+ type: mongoose.Schema.Types.ObjectId,
13
+ ref: "Facility",
14
+ required: true,
15
+ },
16
+ message: {
17
+ type: String,
18
+ required: true,
19
+ },
20
+ read: {
21
+ type: Boolean,
22
+ default: false,
23
+ },
24
+ dateRead: {
25
+ type: Date,
26
+ default: null,
27
+ },
28
+ dateUpdated: {
29
+ type: Date,
30
+ default: null,
31
+ },
32
+ dateSent: {
33
+ type: Date,
34
+ required: true,
35
+ },
36
+ },
37
+ {
38
+ timestamps: true,
39
+ },
40
+ );
41
+
42
+ const Notification = mongoose.model("Notification", notificationSchema);
43
+
44
+ module.exports = Notification;
@@ -1,19 +1,19 @@
1
- const mongoose = require('mongoose');
2
-
3
- const paymentTermMarkSchema = new mongoose.Schema({
4
- paymentTerm: {
5
- type: String,
6
- required: true,
7
- trim: true
8
- },
9
- marks: {
10
- type: Number,
11
- required: true
12
- }
13
- }, {
14
- timestamps: true
15
- });
16
-
17
- const PaymentTermMark = mongoose.model('PaymentTermMark', paymentTermMarkSchema);
18
-
19
- module.exports = PaymentTermMark;
1
+ const mongoose = require('mongoose');
2
+
3
+ const paymentTermMarkSchema = new mongoose.Schema({
4
+ paymentTerm: {
5
+ type: String,
6
+ required: true,
7
+ trim: true
8
+ },
9
+ marks: {
10
+ type: Number,
11
+ required: true
12
+ }
13
+ }, {
14
+ timestamps: true
15
+ });
16
+
17
+ const PaymentTermMark = mongoose.model('PaymentTermMark', paymentTermMarkSchema);
18
+
19
+ module.exports = PaymentTermMark;
@@ -1,77 +1,77 @@
1
- const mongoose = require("mongoose");
2
-
3
- const penaltySchema = new mongoose.Schema(
4
- {
5
- name: {
6
- type: String,
7
- required: true,
8
- },
9
- type: {
10
- type: String,
11
- required: true,
12
- enum: ['percentage', 'fixed']
13
- },
14
- effectDays: {
15
- type: Number,
16
- required: true,
17
- min: [1, "Effect days must be at least 1"]
18
- },
19
- percentage: {
20
- type: Number,
21
- required: function () {
22
- return this.type === 'percentage';
23
- },
24
- min: [0, "Percentage must be at least 0"]
25
- },
26
- amount: {
27
- type: Number,
28
- required: function () {
29
- return this.type === 'fixed';
30
- },
31
- min: [0, "Amount must be a positive number"]
32
- },
33
- module: {
34
- type: String,
35
- required: true,
36
- enum: ['levy', 'lease', 'utility']
37
- },
38
- moduleId: {
39
- type: mongoose.Schema.Types.ObjectId,
40
- required: true,
41
- refPath: 'module'
42
- },
43
- isActive: {
44
- type: Boolean,
45
- default: true,
46
- },
47
- facilityId: {
48
- type: mongoose.Schema.Types.ObjectId,
49
- ref: "Facility",
50
- required: true,
51
- index: true
52
- }
53
- },
54
- {
55
- timestamps: true,
56
- indexes: [
57
- { facilityId: 1, isActive: 1 },
58
- { moduleId: 1, module: 1 },
59
- { name: 1, facilityId: 1 }
60
- ]
61
- }
62
- );
63
-
64
- // Add any custom methods or middleware here if needed
65
- penaltySchema.pre('save', function (next) {
66
- // Clear the irrelevant field based on penalty type
67
- if (this.type === 'percentage') {
68
- this.amount = null;
69
- } else if (this.type === 'fixed') {
70
- this.percentage = null;
71
- }
72
- next();
73
- });
74
-
75
- const Penalty = mongoose.model("Penalty", penaltySchema);
76
-
1
+ const mongoose = require("mongoose");
2
+
3
+ const penaltySchema = new mongoose.Schema(
4
+ {
5
+ name: {
6
+ type: String,
7
+ required: true,
8
+ },
9
+ type: {
10
+ type: String,
11
+ required: true,
12
+ enum: ['percentage', 'fixed']
13
+ },
14
+ effectDays: {
15
+ type: Number,
16
+ required: true,
17
+ min: [1, "Effect days must be at least 1"]
18
+ },
19
+ percentage: {
20
+ type: Number,
21
+ required: function () {
22
+ return this.type === 'percentage';
23
+ },
24
+ min: [0, "Percentage must be at least 0"]
25
+ },
26
+ amount: {
27
+ type: Number,
28
+ required: function () {
29
+ return this.type === 'fixed';
30
+ },
31
+ min: [0, "Amount must be a positive number"]
32
+ },
33
+ module: {
34
+ type: String,
35
+ required: true,
36
+ enum: ['levy', 'lease', 'utility']
37
+ },
38
+ moduleId: {
39
+ type: mongoose.Schema.Types.ObjectId,
40
+ required: true,
41
+ refPath: 'module'
42
+ },
43
+ isActive: {
44
+ type: Boolean,
45
+ default: true,
46
+ },
47
+ facilityId: {
48
+ type: mongoose.Schema.Types.ObjectId,
49
+ ref: "Facility",
50
+ required: true,
51
+ index: true
52
+ }
53
+ },
54
+ {
55
+ timestamps: true,
56
+ indexes: [
57
+ { facilityId: 1, isActive: 1 },
58
+ { moduleId: 1, module: 1 },
59
+ { name: 1, facilityId: 1 }
60
+ ]
61
+ }
62
+ );
63
+
64
+ // Add any custom methods or middleware here if needed
65
+ penaltySchema.pre('save', function (next) {
66
+ // Clear the irrelevant field based on penalty type
67
+ if (this.type === 'percentage') {
68
+ this.amount = null;
69
+ } else if (this.type === 'fixed') {
70
+ this.percentage = null;
71
+ }
72
+ next();
73
+ });
74
+
75
+ const Penalty = mongoose.model("Penalty", penaltySchema);
76
+
77
77
  module.exports = Penalty;
@@ -1,33 +1,33 @@
1
- const mongoose = require("mongoose");
2
-
3
- const pendingCredentialSchema = new mongoose.Schema({
4
- userId: {
5
- type: mongoose.Schema.Types.ObjectId,
6
- ref: 'User',
7
- required: true
8
- },
9
- email: String,
10
- phoneNumber: String,
11
- fullName: String,
12
- userType: String,
13
- password: String, // Temporary storage of plain password for sending
14
- facilityId: mongoose.Schema.Types.ObjectId,
15
- status: {
16
- type: String,
17
- enum: ['pending', 'sent', 'failed'],
18
- default: 'pending'
19
- },
20
- retryCount: {
21
- type: Number,
22
- default: 0
23
- },
24
- createdAt: {
25
- type: Date,
26
- default: Date.now,
27
- expires: '7d' // Auto-delete after 7 days
28
- }
29
- });
30
-
31
- const PendingCredential = mongoose.model("PendingCredential", pendingCredentialSchema);
32
-
1
+ const mongoose = require("mongoose");
2
+
3
+ const pendingCredentialSchema = new mongoose.Schema({
4
+ userId: {
5
+ type: mongoose.Schema.Types.ObjectId,
6
+ ref: 'User',
7
+ required: true
8
+ },
9
+ email: String,
10
+ phoneNumber: String,
11
+ fullName: String,
12
+ userType: String,
13
+ password: String, // Temporary storage of plain password for sending
14
+ facilityId: mongoose.Schema.Types.ObjectId,
15
+ status: {
16
+ type: String,
17
+ enum: ['pending', 'sent', 'failed'],
18
+ default: 'pending'
19
+ },
20
+ retryCount: {
21
+ type: Number,
22
+ default: 0
23
+ },
24
+ createdAt: {
25
+ type: Date,
26
+ default: Date.now,
27
+ expires: '7d' // Auto-delete after 7 days
28
+ }
29
+ });
30
+
31
+ const PendingCredential = mongoose.model("PendingCredential", pendingCredentialSchema);
32
+
33
33
  module.exports = PendingCredential;
@@ -1,18 +1,18 @@
1
- const mongoose = require('mongoose');
2
-
3
- const powerMeterCommunicationProtocolSchema = new mongoose.Schema({
4
- name: {
5
- type: String,
6
- required: true,
7
- unique: true,
8
- trim: true,
9
- uppercase: true,
10
- // Example: Acrel, Mqtt, LAN, etc.
11
- }
12
- }, {
13
- timestamps: true
14
- });
15
-
16
- const PowerMeterCommunicationProtocol = mongoose.model('PowerMeterCommunicationProtocol', powerMeterCommunicationProtocolSchema);
17
-
1
+ const mongoose = require('mongoose');
2
+
3
+ const powerMeterCommunicationProtocolSchema = new mongoose.Schema({
4
+ name: {
5
+ type: String,
6
+ required: true,
7
+ unique: true,
8
+ trim: true,
9
+ uppercase: true,
10
+ // Example: Acrel, Mqtt, LAN, etc.
11
+ }
12
+ }, {
13
+ timestamps: true
14
+ });
15
+
16
+ const PowerMeterCommunicationProtocol = mongoose.model('PowerMeterCommunicationProtocol', powerMeterCommunicationProtocolSchema);
17
+
18
18
  module.exports = PowerMeterCommunicationProtocol;