[add]: Offers
This commit is contained in:
@@ -6,6 +6,7 @@ from marshmallow import ValidationError
|
|||||||
from app.api.enums import TransactionType
|
from app.api.enums import TransactionType
|
||||||
from app.api.integrations import SimbrellaIntegration
|
from app.api.integrations import SimbrellaIntegration
|
||||||
from app.extensions import db
|
from app.extensions import db
|
||||||
|
from app.models import Offer
|
||||||
|
|
||||||
class EligibilityCheckService(BaseService):
|
class EligibilityCheckService(BaseService):
|
||||||
TRANSACTION_TYPE = TransactionType.ELIGIBILITY_CHECK
|
TRANSACTION_TYPE = TransactionType.ELIGIBILITY_CHECK
|
||||||
@@ -53,6 +54,7 @@ class EligibilityCheckService(BaseService):
|
|||||||
account_id = account_id,
|
account_id = account_id,
|
||||||
transaction_id = transaction.id,
|
transaction_id = transaction.id,
|
||||||
)
|
)
|
||||||
|
|
||||||
logger.error(f"This is Response Returned ****** : {str(response)}")
|
logger.error(f"This is Response Returned ****** : {str(response)}")
|
||||||
|
|
||||||
# this chck for error is not valid
|
# this chck for error is not valid
|
||||||
|
|||||||
+2
-1
@@ -19,7 +19,7 @@ class Loan(db.Model):
|
|||||||
transaction_id = db.Column(db.String(50), nullable=True)
|
transaction_id = db.Column(db.String(50), nullable=True)
|
||||||
account_id = db.Column(db.String(50), nullable=False)
|
account_id = db.Column(db.String(50), nullable=False)
|
||||||
offer_id = db.Column(db.String(20), nullable=False)
|
offer_id = db.Column(db.String(20), nullable=False)
|
||||||
product_id = db.Column(db.String(20), nullable=False)
|
product_id = db.Column(db.String(20), nullable=True)
|
||||||
collection_type = db.Column(db.String(20), nullable=True)
|
collection_type = db.Column(db.String(20), nullable=True)
|
||||||
current_loan_amount = db.Column(db.Float, nullable=True)
|
current_loan_amount = db.Column(db.Float, nullable=True)
|
||||||
initial_loan_amount = db.Column(db.Float, nullable=False)
|
initial_loan_amount = db.Column(db.Float, nullable=False)
|
||||||
@@ -59,6 +59,7 @@ class Loan(db.Model):
|
|||||||
customer_id = customer_id,
|
customer_id = customer_id,
|
||||||
account_id = account_id,
|
account_id = account_id,
|
||||||
offer_id = offer_id,
|
offer_id = offer_id,
|
||||||
|
product_id = product_id,
|
||||||
collection_type = collection_type,
|
collection_type = collection_type,
|
||||||
transaction_id = transaction_id,
|
transaction_id = transaction_id,
|
||||||
initial_loan_amount = initial_loan_amount,
|
initial_loan_amount = initial_loan_amount,
|
||||||
|
|||||||
+10
-1
@@ -4,7 +4,7 @@ from app.extensions import db
|
|||||||
class Offer(db.Model):
|
class Offer(db.Model):
|
||||||
__tablename__ = 'offers'
|
__tablename__ = 'offers'
|
||||||
|
|
||||||
id = db.Column(db.Integer, primary_key=True)
|
id = db.Column(db.String, primary_key=True)
|
||||||
product_id = db.Column(db.String, nullable=False)
|
product_id = db.Column(db.String, nullable=False)
|
||||||
min_amount = db.Column(db.Float, nullable=False)
|
min_amount = db.Column(db.Float, nullable=False)
|
||||||
max_amount = db.Column(db.Float, nullable=False)
|
max_amount = db.Column(db.Float, nullable=False)
|
||||||
@@ -12,5 +12,14 @@ class Offer(db.Model):
|
|||||||
created_at = db.Column(db.DateTime, default=datetime.now(timezone.utc))
|
created_at = db.Column(db.DateTime, default=datetime.now(timezone.utc))
|
||||||
updated_at = db.Column(db.DateTime, default=datetime.now(timezone.utc), onupdate=datetime.now(timezone.utc))
|
updated_at = db.Column(db.DateTime, default=datetime.now(timezone.utc), onupdate=datetime.now(timezone.utc))
|
||||||
|
|
||||||
|
def to_dict(self):
|
||||||
|
return {
|
||||||
|
"offerId": self.id,
|
||||||
|
"productId": self.product_id,
|
||||||
|
"minAmount": self.min_amount,
|
||||||
|
"maxAmount": self.max_amount,
|
||||||
|
"tenor": self.tenor
|
||||||
|
}
|
||||||
|
|
||||||
def __repr__(self):
|
def __repr__(self):
|
||||||
return f'<LoanOffer {self.id}>'
|
return f'<LoanOffer {self.id}>'
|
||||||
@@ -0,0 +1,57 @@
|
|||||||
|
"""Migration on Wed Apr 16 17:42:49 UTC 2025
|
||||||
|
|
||||||
|
Revision ID: a4847b997191
|
||||||
|
Revises: 783a023a477f
|
||||||
|
Create Date: 2025-04-16 17:43:22.509659
|
||||||
|
|
||||||
|
"""
|
||||||
|
from alembic import op
|
||||||
|
import sqlalchemy as sa
|
||||||
|
|
||||||
|
|
||||||
|
# revision identifiers, used by Alembic.
|
||||||
|
revision = 'a4847b997191'
|
||||||
|
down_revision = '783a023a477f'
|
||||||
|
branch_labels = None
|
||||||
|
depends_on = None
|
||||||
|
|
||||||
|
|
||||||
|
def upgrade():
|
||||||
|
# ### commands auto generated by Alembic - please adjust! ###
|
||||||
|
op.create_table('loan_charges',
|
||||||
|
sa.Column('id', sa.Integer(), autoincrement=True, nullable=False),
|
||||||
|
sa.Column('loan_id', sa.Integer(), nullable=False),
|
||||||
|
sa.Column('transaction_id', sa.String(length=50), nullable=True),
|
||||||
|
sa.Column('code', sa.String(length=50), nullable=False),
|
||||||
|
sa.Column('amount', sa.Float(), nullable=True),
|
||||||
|
sa.Column('percent', sa.Float(), nullable=True),
|
||||||
|
sa.Column('description', sa.Text(), nullable=True),
|
||||||
|
sa.Column('due', sa.Integer(), nullable=False),
|
||||||
|
sa.Column('created_at', sa.DateTime(), nullable=True),
|
||||||
|
sa.Column('updated_at', sa.DateTime(), nullable=True),
|
||||||
|
sa.PrimaryKeyConstraint('id')
|
||||||
|
)
|
||||||
|
op.create_table('offers',
|
||||||
|
sa.Column('id', sa.String(), nullable=False),
|
||||||
|
sa.Column('product_id', sa.String(), nullable=False),
|
||||||
|
sa.Column('min_amount', sa.Float(), nullable=False),
|
||||||
|
sa.Column('max_amount', sa.Float(), nullable=False),
|
||||||
|
sa.Column('tenor', sa.Integer(), nullable=False),
|
||||||
|
sa.Column('created_at', sa.DateTime(), nullable=True),
|
||||||
|
sa.Column('updated_at', sa.DateTime(), nullable=True),
|
||||||
|
sa.PrimaryKeyConstraint('id')
|
||||||
|
)
|
||||||
|
with op.batch_alter_table('loans', schema=None) as batch_op:
|
||||||
|
batch_op.add_column(sa.Column('product_id', sa.String(length=20), 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('product_id')
|
||||||
|
|
||||||
|
op.drop_table('offers')
|
||||||
|
op.drop_table('loan_charges')
|
||||||
|
# ### end Alembic commands ###
|
||||||
Reference in New Issue
Block a user