From e6d4a441b20eaea5b721f06b50df818efcba0b64 Mon Sep 17 00:00:00 2001 From: Chinenye Nmoh Date: Thu, 20 Nov 2025 21:17:32 +0100 Subject: [PATCH] added loan_repayment_schedule --- app/api/enums/__init__.py | 3 ++- app/api/enums/repayment_schedule_status.py | 6 ++++++ app/models/loan_repayment_schedule.py | 3 +++ 3 files changed, 11 insertions(+), 1 deletion(-) create mode 100644 app/api/enums/repayment_schedule_status.py diff --git a/app/api/enums/__init__.py b/app/api/enums/__init__.py index deb3f94..dc4aff8 100644 --- a/app/api/enums/__init__.py +++ b/app/api/enums/__init__.py @@ -1,2 +1,3 @@ from .transaction_type import TransactionType -from .loan_status import LoanStatus \ No newline at end of file +from .loan_status import LoanStatus +from .repayment_schedule_status import RepaymentScheduleStatus \ No newline at end of file diff --git a/app/api/enums/repayment_schedule_status.py b/app/api/enums/repayment_schedule_status.py new file mode 100644 index 0000000..2faa001 --- /dev/null +++ b/app/api/enums/repayment_schedule_status.py @@ -0,0 +1,6 @@ +from enum import Enum + +class RepaymentScheduleStatus(str, Enum): + ACTIVE = "active" + PARTIALLY_PAID = "partially_paid" + REPAID = "repaid" \ No newline at end of file diff --git a/app/models/loan_repayment_schedule.py b/app/models/loan_repayment_schedule.py index 899510c..df0969e 100644 --- a/app/models/loan_repayment_schedule.py +++ b/app/models/loan_repayment_schedule.py @@ -3,6 +3,7 @@ from app.extensions import db from sqlalchemy.orm import relationship from dateutil.relativedelta import relativedelta from sqlalchemy.sql import func +from app.api.enums.repayment_schedule_status import RepaymentScheduleStatus class LoanRepaymentSchedule(db.Model): __tablename__ = 'loan_repayment_schedules' @@ -51,6 +52,7 @@ class LoanRepaymentSchedule(db.Model): installment_amount=round(loan.installment_amount, 2), product_id = loan.product_id, transaction_id = transaction_id, + paid_status = RepaymentScheduleStatus.ACTIVE, created_at=datetime.now(timezone.utc), updated_at=datetime.now(timezone.utc) ) @@ -70,6 +72,7 @@ class LoanRepaymentSchedule(db.Model): 'interestAmount': self.interest_amount, 'totalInstallment': self.total_installment, 'paid': self.paid, + 'paidStatus': self.paid_status, 'paidAt': self.paid_at.isoformat() if self.paid_at else None }