payservedb 5.6.4 → 5.6.6

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 (113) hide show
  1. package/.env +2 -2
  2. package/index.js +193 -192
  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/auditlog.js +83 -83
  11. package/src/models/bankdetails.js +40 -40
  12. package/src/models/booking_invoice.js +151 -151
  13. package/src/models/bookinganalytics.js +63 -63
  14. package/src/models/bookingconfig.js +45 -45
  15. package/src/models/bookingproperty.js +112 -112
  16. package/src/models/bookingreservation.js +192 -192
  17. package/src/models/bookingrevenuerecord.js +84 -84
  18. package/src/models/budget.js +91 -91
  19. package/src/models/budgetCategory.js +19 -19
  20. package/src/models/campaigns.js +72 -72
  21. package/src/models/cashpayment.js +262 -262
  22. package/src/models/combinedUnits.js +62 -62
  23. package/src/models/common_area_electricity.js +38 -38
  24. package/src/models/common_area_generator.js +41 -41
  25. package/src/models/common_area_utility_alert.js +37 -37
  26. package/src/models/common_area_water.js +39 -39
  27. package/src/models/company.js +53 -53
  28. package/src/models/country_tax.js +42 -42
  29. package/src/models/currency_settings.js +39 -39
  30. package/src/models/customer.js +200 -200
  31. package/src/models/default_payment_details.js +17 -17
  32. package/src/models/dutyroster.js +107 -107
  33. package/src/models/email.js +37 -37
  34. package/src/models/entry_exit.js +53 -53
  35. package/src/models/expense.js +99 -99
  36. package/src/models/expense_category.js +19 -45
  37. package/src/models/facility.js +61 -61
  38. package/src/models/facility_payment_details.js +20 -20
  39. package/src/models/facilityasset.js +25 -25
  40. package/src/models/faq.js +18 -18
  41. package/src/models/gl_account_double_entries.js +25 -25
  42. package/src/models/gl_accounts.js +56 -56
  43. package/src/models/gl_entries.js +49 -49
  44. package/src/models/guard.js +47 -47
  45. package/src/models/handover.js +246 -246
  46. package/src/models/invoice.js +336 -336
  47. package/src/models/item_inspection.js +67 -67
  48. package/src/models/leaseagreement.js +221 -221
  49. package/src/models/leasetemplate.js +17 -17
  50. package/src/models/levy.js +152 -152
  51. package/src/models/levy_invoice_settings.js +26 -26
  52. package/src/models/levycontract.js +117 -117
  53. package/src/models/levytype.js +23 -23
  54. package/src/models/maintenance_service_vendor.js +38 -38
  55. package/src/models/maintenance_services.js +17 -17
  56. package/src/models/maintenancerequisition.js +31 -31
  57. package/src/models/message.js +38 -38
  58. package/src/models/module.js +21 -21
  59. package/src/models/notification.js +36 -24
  60. package/src/models/penalty.js +76 -76
  61. package/src/models/pendingCredentials.js +32 -32
  62. package/src/models/propertyManagerContract.js +358 -358
  63. package/src/models/propertyManagerRevenue.js +100 -100
  64. package/src/models/purchase_order.js +194 -194
  65. package/src/models/purchase_request.js +110 -110
  66. package/src/models/refresh_token.js +23 -23
  67. package/src/models/reminder.js +197 -197
  68. package/src/models/report.js +13 -13
  69. package/src/models/resident.js +121 -121
  70. package/src/models/rfq_details.js +131 -131
  71. package/src/models/rfq_response.js +105 -105
  72. package/src/models/service_charge_invoice_upload.js +42 -42
  73. package/src/models/service_charge_payments.js +27 -27
  74. package/src/models/servicerequest.js +55 -55
  75. package/src/models/settings.js +62 -62
  76. package/src/models/smart_meter_daily_consumption.js +44 -44
  77. package/src/models/sms_africastalking.js +20 -20
  78. package/src/models/sms_meliora.js +20 -20
  79. package/src/models/staff.js +36 -36
  80. package/src/models/stocksandspare.js +34 -34
  81. package/src/models/suppliers.js +74 -74
  82. package/src/models/tickets.js +109 -109
  83. package/src/models/unitManagementTemplate.js +44 -44
  84. package/src/models/unitasset.js +25 -25
  85. package/src/models/units.js +112 -112
  86. package/src/models/user.js +187 -187
  87. package/src/models/valueaddedservices.js +79 -79
  88. package/src/models/vas_invoices_upload.js +50 -50
  89. package/src/models/vas_payments.js +24 -24
  90. package/src/models/vasinvoice.js +192 -192
  91. package/src/models/vasvendor.js +57 -57
  92. package/src/models/visitLog.js +86 -86
  93. package/src/models/visitor.js +67 -67
  94. package/src/models/waitlist.js +45 -45
  95. package/src/models/water_invoice.js +193 -193
  96. package/src/models/water_meter_account.js +78 -78
  97. package/src/models/water_meter_billing.js +58 -58
  98. package/src/models/water_meter_communication.js +17 -17
  99. package/src/models/water_meter_communication_logs.js +30 -30
  100. package/src/models/water_meter_concentrator.js +59 -59
  101. package/src/models/water_meter_daily_history.js +32 -32
  102. package/src/models/water_meter_iot_cards.js +34 -34
  103. package/src/models/water_meter_manufacturer.js +35 -35
  104. package/src/models/water_meter_monthly_history.js +36 -36
  105. package/src/models/water_meter_settings.js +88 -114
  106. package/src/models/water_meter_single_day_history.js +34 -34
  107. package/src/models/water_meter_size.js +15 -15
  108. package/src/models/water_meters.js +117 -117
  109. package/src/models/water_meters_delivery.js +76 -76
  110. package/src/models/water_prepaid_credit.js +43 -43
  111. package/src/models/water_prepaid_debit.js +50 -50
  112. package/src/models/workorder.js +49 -49
  113. package/src/models/billerAddress.js +0 -117
@@ -1,85 +1,85 @@
1
- const mongoose = require('mongoose');
2
-
3
- // Define the schema for Revenue Records
4
- const revenueRecordSchema = new mongoose.Schema({
5
- facilityId: {
6
- type: mongoose.Schema.Types.ObjectId,
7
- ref: 'Facility',
8
- required: true,
9
- index: true
10
- },
11
- reservationId: {
12
- type: mongoose.Schema.Types.ObjectId,
13
- ref: 'BookingReservation',
14
- required: true,
15
- index: true
16
- },
17
- bookingPropertyId: {
18
- type: mongoose.Schema.Types.ObjectId,
19
- ref: 'BookingProperty',
20
- required: true
21
- },
22
- unitId: {
23
- type: mongoose.Schema.Types.ObjectId,
24
- ref: 'Unit',
25
- required: true
26
- },
27
- checkoutDate: {
28
- type: Date,
29
- required: true,
30
- index: true
31
- },
32
- baseAmount: {
33
- type: Number,
34
- required: true
35
- },
36
- finalAmount: {
37
- type: Number,
38
- required: true
39
- },
40
- additionalChargesAmount: {
41
- type: Number,
42
- default: 0
43
- },
44
- currencyId: {
45
- type: mongoose.Schema.Types.ObjectId,
46
- ref: 'Currency',
47
- required: true
48
- },
49
- // For easier querying and aggregation
50
- month: {
51
- type: Number, // 1-12
52
- required: true,
53
- index: true
54
- },
55
- year: {
56
- type: Number,
57
- required: true,
58
- index: true
59
- },
60
- quarter: {
61
- type: Number, // 1-4
62
- required: true,
63
- index: true
64
- },
65
- bookingDuration: {
66
- type: Number, // Number of days
67
- default: 0
68
- },
69
- createdAt: {
70
- type: Date,
71
- default: Date.now
72
- }
73
- }, {
74
- // Enable timestamps
75
- timestamps: true
76
- });
77
-
78
- // Create compound indices for efficient querying
79
- revenueRecordSchema.index({ facilityId: 1, year: 1, month: 1 });
80
- revenueRecordSchema.index({ facilityId: 1, year: 1, quarter: 1 });
81
-
82
- // Create model from schema
83
- const RevenueRecord = mongoose.model('RevenueRecord', revenueRecordSchema);
84
-
1
+ const mongoose = require('mongoose');
2
+
3
+ // Define the schema for Revenue Records
4
+ const revenueRecordSchema = new mongoose.Schema({
5
+ facilityId: {
6
+ type: mongoose.Schema.Types.ObjectId,
7
+ ref: 'Facility',
8
+ required: true,
9
+ index: true
10
+ },
11
+ reservationId: {
12
+ type: mongoose.Schema.Types.ObjectId,
13
+ ref: 'BookingReservation',
14
+ required: true,
15
+ index: true
16
+ },
17
+ bookingPropertyId: {
18
+ type: mongoose.Schema.Types.ObjectId,
19
+ ref: 'BookingProperty',
20
+ required: true
21
+ },
22
+ unitId: {
23
+ type: mongoose.Schema.Types.ObjectId,
24
+ ref: 'Unit',
25
+ required: true
26
+ },
27
+ checkoutDate: {
28
+ type: Date,
29
+ required: true,
30
+ index: true
31
+ },
32
+ baseAmount: {
33
+ type: Number,
34
+ required: true
35
+ },
36
+ finalAmount: {
37
+ type: Number,
38
+ required: true
39
+ },
40
+ additionalChargesAmount: {
41
+ type: Number,
42
+ default: 0
43
+ },
44
+ currencyId: {
45
+ type: mongoose.Schema.Types.ObjectId,
46
+ ref: 'Currency',
47
+ required: true
48
+ },
49
+ // For easier querying and aggregation
50
+ month: {
51
+ type: Number, // 1-12
52
+ required: true,
53
+ index: true
54
+ },
55
+ year: {
56
+ type: Number,
57
+ required: true,
58
+ index: true
59
+ },
60
+ quarter: {
61
+ type: Number, // 1-4
62
+ required: true,
63
+ index: true
64
+ },
65
+ bookingDuration: {
66
+ type: Number, // Number of days
67
+ default: 0
68
+ },
69
+ createdAt: {
70
+ type: Date,
71
+ default: Date.now
72
+ }
73
+ }, {
74
+ // Enable timestamps
75
+ timestamps: true
76
+ });
77
+
78
+ // Create compound indices for efficient querying
79
+ revenueRecordSchema.index({ facilityId: 1, year: 1, month: 1 });
80
+ revenueRecordSchema.index({ facilityId: 1, year: 1, quarter: 1 });
81
+
82
+ // Create model from schema
83
+ const RevenueRecord = mongoose.model('RevenueRecord', revenueRecordSchema);
84
+
85
85
  module.exports = RevenueRecord;
@@ -1,91 +1,91 @@
1
- const mongoose = require('mongoose');
2
-
3
- const budgetSchema = new mongoose.Schema({
4
- facilityId: {
5
- type: mongoose.Schema.Types.ObjectId,
6
- ref: 'Facility',
7
- required: true,
8
- index: true
9
- },
10
- budgetName: {
11
- type: String,
12
- required: true,
13
- trim: true
14
- },
15
- allocation: {
16
- type: Number,
17
- required: true
18
- },
19
- userName: {
20
- type: String,
21
- required: true
22
- },
23
- startDate: {
24
- type: Date,
25
- required: true
26
- },
27
- endDate: {
28
- type: Date,
29
- required: true
30
- },
31
- department: {
32
- type: String,
33
- required: true,
34
- trim: true
35
- },
36
- overruns: {
37
- type: Boolean,
38
- default: false
39
- },
40
- approvalWorkflowId: {
41
- type: mongoose.Schema.Types.ObjectId,
42
- ref: 'ApprovalWorkflow',
43
- required: true
44
- },
45
- approvalStatus: {
46
- type: String,
47
- enum: ['pending', 'in_progress', 'approved', 'rejected'],
48
- default: 'pending',
49
- index: true
50
- },
51
- currentStep: {
52
- type: Number,
53
- default: 1,
54
- min: 1
55
- },
56
- approvals: [{
57
- stepNumber: {
58
- type: Number,
59
- required: true
60
- },
61
- stepName: {
62
- type: String,
63
- required: true
64
- },
65
- approvers: [{
66
- userId: {
67
- type: mongoose.Schema.Types.ObjectId,
68
- ref: 'User',
69
- required: true
70
- },
71
- status: {
72
- type: String,
73
- enum: ['pending', 'approved', 'rejected'],
74
- default: 'pending'
75
- },
76
- actionDate: {
77
- type: Date
78
- },
79
- comments: {
80
- type: String,
81
- trim: true
82
- }
83
- }]
84
- }]
85
- }, {
86
- timestamps: true
87
- });
88
-
89
- const Budget = mongoose.model('Budget', budgetSchema);
90
-
91
- module.exports = Budget;
1
+ const mongoose = require('mongoose');
2
+
3
+ const budgetSchema = new mongoose.Schema({
4
+ facilityId: {
5
+ type: mongoose.Schema.Types.ObjectId,
6
+ ref: 'Facility',
7
+ required: true,
8
+ index: true
9
+ },
10
+ budgetName: {
11
+ type: String,
12
+ required: true,
13
+ trim: true
14
+ },
15
+ allocation: {
16
+ type: Number,
17
+ required: true
18
+ },
19
+ userName: {
20
+ type: String,
21
+ required: true
22
+ },
23
+ startDate: {
24
+ type: Date,
25
+ required: true
26
+ },
27
+ endDate: {
28
+ type: Date,
29
+ required: true
30
+ },
31
+ department: {
32
+ type: String,
33
+ required: true,
34
+ trim: true
35
+ },
36
+ overruns: {
37
+ type: Boolean,
38
+ default: false
39
+ },
40
+ approvalWorkflowId: {
41
+ type: mongoose.Schema.Types.ObjectId,
42
+ ref: 'ApprovalWorkflow',
43
+ required: true
44
+ },
45
+ approvalStatus: {
46
+ type: String,
47
+ enum: ['pending', 'in_progress', 'approved', 'rejected'],
48
+ default: 'pending',
49
+ index: true
50
+ },
51
+ currentStep: {
52
+ type: Number,
53
+ default: 1,
54
+ min: 1
55
+ },
56
+ approvals: [{
57
+ stepNumber: {
58
+ type: Number,
59
+ required: true
60
+ },
61
+ stepName: {
62
+ type: String,
63
+ required: true
64
+ },
65
+ approvers: [{
66
+ userId: {
67
+ type: mongoose.Schema.Types.ObjectId,
68
+ ref: 'User',
69
+ required: true
70
+ },
71
+ status: {
72
+ type: String,
73
+ enum: ['pending', 'approved', 'rejected'],
74
+ default: 'pending'
75
+ },
76
+ actionDate: {
77
+ type: Date
78
+ },
79
+ comments: {
80
+ type: String,
81
+ trim: true
82
+ }
83
+ }]
84
+ }]
85
+ }, {
86
+ timestamps: true
87
+ });
88
+
89
+ const Budget = mongoose.model('Budget', budgetSchema);
90
+
91
+ module.exports = Budget;
@@ -1,20 +1,20 @@
1
- const mongoose = require('mongoose');
2
-
3
- const budgetCategorySchema = new mongoose.Schema({
4
- facilityId: {
5
- type: mongoose.Schema.Types.ObjectId,
6
- ref: 'Facility',
7
- required: true
8
- },
9
- title: {
10
- type: String,
11
- required: true,
12
- trim: true
13
- }
14
- }, {
15
- timestamps: true
16
- });
17
-
18
- const BudgetCategory = mongoose.model('BudgetCategory', budgetCategorySchema);
19
-
1
+ const mongoose = require('mongoose');
2
+
3
+ const budgetCategorySchema = new mongoose.Schema({
4
+ facilityId: {
5
+ type: mongoose.Schema.Types.ObjectId,
6
+ ref: 'Facility',
7
+ required: true
8
+ },
9
+ title: {
10
+ type: String,
11
+ required: true,
12
+ trim: true
13
+ }
14
+ }, {
15
+ timestamps: true
16
+ });
17
+
18
+ const BudgetCategory = mongoose.model('BudgetCategory', budgetCategorySchema);
19
+
20
20
  module.exports = BudgetCategory;
@@ -1,73 +1,73 @@
1
- const mongoose = require('mongoose');
2
-
3
- const CampaignSchema = new mongoose.Schema({
4
- facilityId: {
5
- type: mongoose.Schema.Types.ObjectId,
6
- ref: 'Facility',
7
- required: true,
8
- },
9
- name: {
10
- type: String,
11
- required: true,
12
- trim: true,
13
- maxlength: 100
14
- },
15
- objective: {
16
- type: String,
17
- enum: ['Brand Awareness', 'Lead Generation', 'Sales', 'Engagement'],
18
- required: true
19
- },
20
- startDate: {
21
- type: Date,
22
- required: true
23
- },
24
- endDate: {
25
- type: Date,
26
- required: true,
27
- validate: {
28
- validator: function (value) {
29
- return this.startDate <= value;
30
- },
31
- message: 'End date must be after or equal to start date'
32
- }
33
- },
34
- targetAudience: {
35
- type: String,
36
- required: true,
37
- trim: true,
38
- maxlength: 200
39
- },
40
- channels: [{
41
- type: String,
42
- enum: ['SMS'],
43
- required: true
44
- }],
45
- status: {
46
- type: String,
47
- enum: ['Draft', 'Ongoing', 'Completed'],
48
- default: 'Draft'
49
- }, description: {
50
- type: String,
51
- trim: true,
52
- maxlength: 500
53
- },
54
- createdAt: {
55
- type: Date,
56
- default: Date.now
57
- },
58
- updatedAt: {
59
- type: Date,
60
- default: Date.now
61
- }
62
- }, {
63
- timestamps: true
64
- });
65
-
66
- // Ensure at least one channel is selected
67
- CampaignSchema.path('channels').validate(function (value) {
68
- return value.length > 0;
69
- }, 'At least one channel must be selected');
70
-
71
- const Campaign = mongoose.model('Campaign', CampaignSchema);
72
-
1
+ const mongoose = require('mongoose');
2
+
3
+ const CampaignSchema = new mongoose.Schema({
4
+ facilityId: {
5
+ type: mongoose.Schema.Types.ObjectId,
6
+ ref: 'Facility',
7
+ required: true,
8
+ },
9
+ name: {
10
+ type: String,
11
+ required: true,
12
+ trim: true,
13
+ maxlength: 100
14
+ },
15
+ objective: {
16
+ type: String,
17
+ enum: ['Brand Awareness', 'Lead Generation', 'Sales', 'Engagement'],
18
+ required: true
19
+ },
20
+ startDate: {
21
+ type: Date,
22
+ required: true
23
+ },
24
+ endDate: {
25
+ type: Date,
26
+ required: true,
27
+ validate: {
28
+ validator: function (value) {
29
+ return this.startDate <= value;
30
+ },
31
+ message: 'End date must be after or equal to start date'
32
+ }
33
+ },
34
+ targetAudience: {
35
+ type: String,
36
+ required: true,
37
+ trim: true,
38
+ maxlength: 200
39
+ },
40
+ channels: [{
41
+ type: String,
42
+ enum: ['SMS'],
43
+ required: true
44
+ }],
45
+ status: {
46
+ type: String,
47
+ enum: ['Draft', 'Ongoing', 'Completed'],
48
+ default: 'Draft'
49
+ }, description: {
50
+ type: String,
51
+ trim: true,
52
+ maxlength: 500
53
+ },
54
+ createdAt: {
55
+ type: Date,
56
+ default: Date.now
57
+ },
58
+ updatedAt: {
59
+ type: Date,
60
+ default: Date.now
61
+ }
62
+ }, {
63
+ timestamps: true
64
+ });
65
+
66
+ // Ensure at least one channel is selected
67
+ CampaignSchema.path('channels').validate(function (value) {
68
+ return value.length > 0;
69
+ }, 'At least one channel must be selected');
70
+
71
+ const Campaign = mongoose.model('Campaign', CampaignSchema);
72
+
73
73
  module.exports =Campaign;