Compare commits
10 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 617738b785 | |||
| 9db3b68b13 | |||
| 1795db35be | |||
| 8bb5ce69e2 | |||
| 5087afcca6 | |||
| 11b52357ba | |||
| e8361668e5 | |||
| f659fa9cf2 | |||
| 23e340be27 | |||
| adc2498044 |
@@ -3,5 +3,6 @@ from enum import Enum
|
||||
class LoanStatus(str, Enum):
|
||||
PENDING = "pending"
|
||||
ACTIVE = "active"
|
||||
ACTIVE_PARTIAL = "active_partial"
|
||||
START_REPAY = "start_repay"
|
||||
REPAID = "repaid"
|
||||
@@ -67,7 +67,11 @@ class RepaymentService(BaseService):
|
||||
return ResponseHelper.error(result_description="Invalid Customer or Account")
|
||||
|
||||
# Simulated processing logic
|
||||
# TODO start using repayment_id instead if id or Id
|
||||
response_data = {
|
||||
"Id": repayment.id,
|
||||
"repayment_id": repayment.id,
|
||||
"initiated_by": repayment.initiated_by,
|
||||
"transactionId": transaction_id,
|
||||
"customerId": customer_id,
|
||||
"productId": loan.product_id,
|
||||
|
||||
@@ -35,6 +35,7 @@ class Loan(db.Model):
|
||||
continuous_fee = db.Column(db.Float, default=0)
|
||||
upfront_fee = db.Column(db.Float, nullable=True, default=0.0)
|
||||
repayment_amount = db.Column(db.Float, nullable=True, default=0.0)
|
||||
balance = db.Column(db.Float, nullable=True, default=0.0)
|
||||
installment_amount = db.Column(db.Float, nullable=True, default=0.0)
|
||||
status = db.Column(db.String(20), default='pending')
|
||||
tenor = db.Column(db.Integer, nullable=True)
|
||||
@@ -112,6 +113,7 @@ class Loan(db.Model):
|
||||
current_loan_amount = initial_loan_amount,
|
||||
upfront_fee = upfront_fee,
|
||||
repayment_amount = repayment_amount,
|
||||
balance = repayment_amount,
|
||||
installment_amount = installment_amount,
|
||||
due_date=due_date,
|
||||
tenor = tenor,
|
||||
|
||||
@@ -21,10 +21,12 @@ class Repayment(db.Model):
|
||||
created_at = db.Column(db.DateTime(timezone=True), server_default=func.now())
|
||||
updated_at = db.Column(db.DateTime(timezone=True), server_default=func.now(), onupdate=func.now())
|
||||
transaction_id = db.Column(db.String(50), nullable=True)
|
||||
repay_date = db.Column(db.DateTime, default=datetime.now(timezone.utc))
|
||||
# repay_date = db.Column(db.DateTime, default=datetime.now(timezone.utc))
|
||||
repay_date = db.Column(db.DateTime, nullable=True)
|
||||
repay_result = db.Column(db.String(10), nullable=True)
|
||||
repay_description = db.Column(db.String(100), nullable=True)
|
||||
verify_date = db.Column(db.DateTime, default=datetime.now(timezone.utc))
|
||||
# verify_date = db.Column(db.DateTime, default=datetime.now(timezone.utc))
|
||||
verify_date = db.Column(db.DateTime, nullable=True)
|
||||
verify_result = db.Column(db.String(10), nullable=True)
|
||||
verify_description = db.Column(db.String(100), nullable=True)
|
||||
initiated_by = db.Column(db.String(50), nullable=True)
|
||||
@@ -44,7 +46,8 @@ class Repayment(db.Model):
|
||||
product_id=loan.product_id,
|
||||
transaction_id = transaction_id,
|
||||
created_at=datetime.now(timezone.utc),
|
||||
updated_at=datetime.now(timezone.utc)
|
||||
updated_at=datetime.now(timezone.utc),
|
||||
initiated_by='USER_INITIATED'
|
||||
)
|
||||
|
||||
try:
|
||||
|
||||
@@ -7,7 +7,7 @@ class Salary(db.Model):
|
||||
|
||||
id = db.Column(db.Integer, primary_key=True, autoincrement=True)
|
||||
customer_id = db.Column(db.String(50), nullable=False)
|
||||
account_type = db.Column(db.String(50))
|
||||
account_id = db.Column(db.String(50), nullable=True)
|
||||
status = db.Column(db.String(20), default='active')
|
||||
amount = db.Column(db.Float, nullable=False, default=0.0)
|
||||
salary_date = db.Column(db.DateTime(timezone=False), server_default=func.now())
|
||||
@@ -18,7 +18,7 @@ class Salary(db.Model):
|
||||
return {
|
||||
"id": self.id,
|
||||
"customer_id": self.customer_id,
|
||||
"account_type": self.account_type,
|
||||
"account_id": self.account_id,
|
||||
"status": self.status,
|
||||
"amount": self.amount,
|
||||
"salary_date": self.salary_date.isoformat() if self.salary_date else None,
|
||||
|
||||
@@ -0,0 +1,32 @@
|
||||
"""empty message
|
||||
|
||||
Revision ID: 48c62b4da905
|
||||
Revises: 7a0caf83d5be
|
||||
Create Date: 2025-06-23 11:08:22.928700
|
||||
|
||||
"""
|
||||
from alembic import op
|
||||
import sqlalchemy as sa
|
||||
|
||||
|
||||
# revision identifiers, used by Alembic.
|
||||
revision = '48c62b4da905'
|
||||
down_revision = '7a0caf83d5be'
|
||||
branch_labels = None
|
||||
depends_on = None
|
||||
|
||||
|
||||
def upgrade():
|
||||
# ### commands auto generated by Alembic - please adjust! ###
|
||||
with op.batch_alter_table('loans', schema=None) as batch_op:
|
||||
batch_op.add_column(sa.Column('balance', sa.Float(), nullable=True))
|
||||
|
||||
# ### end Alembic commands ###
|
||||
|
||||
|
||||
def downgrade():
|
||||
# ### commands auto generated by Alembic - please adjust! ###
|
||||
with op.batch_alter_table('loans', schema=None) as batch_op:
|
||||
batch_op.drop_column('balance')
|
||||
|
||||
# ### end Alembic commands ###
|
||||
@@ -0,0 +1,34 @@
|
||||
"""empty message
|
||||
|
||||
Revision ID: 7a0caf83d5be
|
||||
Revises: 1696ee63c28a
|
||||
Create Date: 2025-06-19 04:35:23.660261
|
||||
|
||||
"""
|
||||
from alembic import op
|
||||
import sqlalchemy as sa
|
||||
|
||||
|
||||
# revision identifiers, used by Alembic.
|
||||
revision = '7a0caf83d5be'
|
||||
down_revision = '1696ee63c28a'
|
||||
branch_labels = None
|
||||
depends_on = None
|
||||
|
||||
|
||||
def upgrade():
|
||||
# ### commands auto generated by Alembic - please adjust! ###
|
||||
with op.batch_alter_table('salaries', schema=None) as batch_op:
|
||||
batch_op.add_column(sa.Column('account_id', sa.String(length=50), nullable=True))
|
||||
batch_op.drop_column('account_type')
|
||||
|
||||
# ### end Alembic commands ###
|
||||
|
||||
|
||||
def downgrade():
|
||||
# ### commands auto generated by Alembic - please adjust! ###
|
||||
with op.batch_alter_table('salaries', schema=None) as batch_op:
|
||||
batch_op.add_column(sa.Column('account_type', sa.VARCHAR(length=50), autoincrement=False, nullable=True))
|
||||
batch_op.drop_column('account_id')
|
||||
|
||||
# ### end Alembic commands ###
|
||||
Reference in New Issue
Block a user