[update]: loan status response

This commit was merged in pull request #37.
This commit is contained in:
VivianDee
2025-05-27 02:02:22 +01:00
parent 7a2ff6586f
commit 65472d3f07
7 changed files with 51 additions and 5 deletions
+8
View File
@@ -1,4 +1,5 @@
from datetime import datetime, timezone
from itertools import product
from app.extensions import db
from app.models.customer import Customer
from app.models.account import Account
@@ -43,6 +44,7 @@ class Loan(db.Model):
eligible_amount = db.Column(db.Float, nullable=True, default=0.0)
disburse_date = db.Column(db.DateTime, nullable=True)
disburse_verify = db.Column(db.DateTime, nullable=True)
reference = db.Column(db.String(50), nullable=True)
customer = relationship(
"Customer",
@@ -82,6 +84,7 @@ class Loan(db.Model):
installment_amount,
tenor,
eligible_amount,
reference,
status = "pending",
):
# Check if customer exists
@@ -110,6 +113,7 @@ class Loan(db.Model):
tenor = tenor,
status = status,
eligible_amount =eligible_amount,
reference = reference,
created_at=datetime.now(timezone.utc),
updated_at=datetime.now(timezone.utc)
)
@@ -213,6 +217,9 @@ class Loan(db.Model):
"""
return {
'debtId': self.id,
'transactionId': self.transaction_id,
'loanRef': self.reference,
'productId': self.product_id,
'initialLoanAmount': self.initial_loan_amount,
'currentLoanAmount': self.current_loan_amount,
'defaultPenaltyFee': self.default_penalty_fee,
@@ -222,6 +229,7 @@ class Loan(db.Model):
'repaymentAmount': self.repayment_amount,
'installmentAmount': self.installment_amount,
'status': self.status,
'tenor': self.tenor,
'dueDate': self.due_date.isoformat() if self.due_date else None,
'loanDate': self.created_at.isoformat() if self.created_at else None,
}
+1 -1
View File
@@ -34,7 +34,7 @@ class Repayment(db.Model):
loan = Loan.get_customer_loan(loan_id = loan_id, customer_id = customer_id)
# Check that the loan is active
if loan.status != LoanStatus.ACTIVE:
if loan.status not in [LoanStatus.ACTIVE, LoanStatus.START_REPAY]:
raise ValueError(f"Repayment cannot be processed. Loan status: ({loan.status})")