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 }