payservedb 3.4.6 → 3.4.7

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.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "payservedb",
3
- "version": "3.4.6",
3
+ "version": "3.4.7",
4
4
  "main": "index.js",
5
5
  "scripts": {
6
6
  "test": "echo \"Error: no test specified\" && exit 1"
@@ -31,7 +31,7 @@ const leaseAgreementSchema = new mongoose.Schema({
31
31
  financialTerms: {
32
32
  monthlyRent: { type: Number, required: true },
33
33
  paymentDueDate: { type: Number, required: true },
34
- paymentMethod: {
34
+ paymentMethods: [{
35
35
  type: {
36
36
  type: String,
37
37
  required: true,
@@ -47,11 +47,24 @@ const leaseAgreementSchema = new mongoose.Schema({
47
47
  // For Mobile Money
48
48
  phoneNumber: String,
49
49
  provider: String,
50
- accountName: String,
51
- // For Cash/Cheque, no additional details needed
52
- }
53
- },
54
- securityDeposit: { type: Number, required: true }
50
+ mobileAccountName: String,
51
+ // For Cheque
52
+ bankToDraft: String,
53
+ chequeAccountNumber: String,
54
+ // For Cash
55
+ preferredCashLocation: String
56
+ },
57
+ isPrimary: { type: Boolean, default: false }
58
+ }],
59
+ securityDeposit: { type: Number, required: true },
60
+ penalty: {
61
+ type: {
62
+ amount: { type: Number },
63
+ percentage: { type: Number },
64
+ appliesAfter: { type: Number, default: 7 } // Days after due date
65
+ },
66
+ default: null
67
+ }
55
68
  },
56
69
  billingCycle: {
57
70
  frequency: { type: String, enum: ['Monthly', 'Quarterly', 'Annually'], required: true },
@@ -64,7 +77,7 @@ const leaseAgreementSchema = new mongoose.Schema({
64
77
  leaseTemplate: {
65
78
  type: mongoose.Schema.Types.ObjectId,
66
79
  ref: 'LeaseTemplate',
67
- required: true // Ensures that every lease uses a valid template
80
+ required: true
68
81
  },
69
82
  leaseDocuments: [
70
83
  {
@@ -88,7 +101,21 @@ const leaseAgreementSchema = new mongoose.Schema({
88
101
  payments: [
89
102
  {
90
103
  invoiceId: { type: mongoose.Schema.Types.ObjectId, ref: 'Invoice', required: true },
91
- method: { type: String, enum: ['Cash', 'Bank Transfer'], required: true },
104
+ method: {
105
+ type: {
106
+ type: String,
107
+ enum: ['Bank Transfer', 'Mobile Money', 'Cash', 'Cheque'],
108
+ required: true
109
+ },
110
+ details: {
111
+ // Capture specific details of the payment method used
112
+ bankName: String,
113
+ accountNumber: String,
114
+ transactionId: String,
115
+ mobileNumber: String,
116
+ chequeNumber: String
117
+ }
118
+ },
92
119
  amount: { type: Number, required: true },
93
120
  receivedBy: { type: mongoose.Schema.Types.ObjectId, ref: 'User', required: true },
94
121
  receivedAt: { type: Date, default: Date.now }
@@ -104,4 +131,4 @@ const leaseAgreementSchema = new mongoose.Schema({
104
131
 
105
132
  const LeaseAgreement = mongoose.model('LeaseAgreement', leaseAgreementSchema);
106
133
 
107
- module.exports = LeaseAgreement;
134
+ module.exports = LeaseAgreement;