[update]: Repayments table
This commit was merged in pull request #47.
This commit is contained in:
@@ -1,11 +1,17 @@
|
|||||||
from datetime import datetime, timezone
|
from datetime import datetime, timezone
|
||||||
from app.extensions import db
|
from app.extensions import db
|
||||||
|
|
||||||
|
|
||||||
class RepaymentsData(db.Model):
|
class RepaymentsData(db.Model):
|
||||||
__tablename__ = 'repayments_data'
|
__tablename__ = "repayments_data"
|
||||||
|
|
||||||
id = db.Column(db.Integer, primary_key=True, autoincrement=True)
|
id = db.Column(db.Integer, primary_key=True, autoincrement=True)
|
||||||
transaction_id = db.Column(db.String(50), nullable=False)
|
transaction_id = db.Column(db.String(50), nullable=False)
|
||||||
|
fbn_transaction_id = db.Column(db.String(50), nullable=True)
|
||||||
|
customer_id = db.Column(db.String(50), nullable=True)
|
||||||
|
account_id = db.Column(db.String(50), nullable=True)
|
||||||
|
repayment_amount = db.Column(db.Float, nullable=True, default=0.0)
|
||||||
|
amount_collected = db.Column(db.Float, nullable=True, default=0.0)
|
||||||
added_date = db.Column(db.DateTime(timezone=True), default=datetime.now(timezone.utc), nullable=False)
|
added_date = db.Column(db.DateTime(timezone=True), default=datetime.now(timezone.utc), nullable=False)
|
||||||
response_code = db.Column(db.String(10), nullable=True)
|
response_code = db.Column(db.String(10), nullable=True)
|
||||||
response_descr = db.Column(db.String(255), nullable=True)
|
response_descr = db.Column(db.String(255), nullable=True)
|
||||||
@@ -14,11 +20,15 @@ class RepaymentsData(db.Model):
|
|||||||
return {
|
return {
|
||||||
"id": self.id,
|
"id": self.id,
|
||||||
"transaction_id": self.transaction_id,
|
"transaction_id": self.transaction_id,
|
||||||
|
"fbn_transaction_id": self.fbn_transaction_id,
|
||||||
|
"customer_id": self.customer_id,
|
||||||
|
"account_id": self.account_id,
|
||||||
|
"repayment_amount": self.repayment_amount,
|
||||||
|
"amount_collected": self.amount_collected,
|
||||||
"added_date": self.added_date.isoformat() if self.added_date else None,
|
"added_date": self.added_date.isoformat() if self.added_date else None,
|
||||||
"response_code": self.response_code,
|
"response_code": self.response_code,
|
||||||
"response_descr": self.response_descr,
|
"response_descr": self.response_descr,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
def __repr__(self):
|
def __repr__(self):
|
||||||
return f"<RepaymentsData id={self.id}, transaction_id={self.transaction_id}>"
|
return f"<RepaymentsData id={self.id}, transaction_id={self.transaction_id}>"
|
||||||
|
|||||||
@@ -17,8 +17,10 @@ class Transaction(db.Model):
|
|||||||
customer_id = db.Column(db.String(50), nullable=True)
|
customer_id = db.Column(db.String(50), nullable=True)
|
||||||
type = db.Column(db.String(50), nullable=False)
|
type = db.Column(db.String(50), nullable=False)
|
||||||
channel = db.Column(db.String(50), nullable=False)
|
channel = db.Column(db.String(50), nullable=False)
|
||||||
|
phone_number = db.Column(db.String(50), nullable=True)
|
||||||
created_at = db.Column(db.DateTime(timezone=True), server_default=func.now())
|
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())
|
updated_at = db.Column(db.DateTime(timezone=True), server_default=func.now(), onupdate=func.now())
|
||||||
|
|
||||||
def __repr__(self):
|
def __repr__(self):
|
||||||
return f'<Transaction {self.id}>'
|
return f'<Transaction {self.id}>'
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,46 @@
|
|||||||
|
"""empty message
|
||||||
|
|
||||||
|
Revision ID: b54422fb31e0
|
||||||
|
Revises: 0acd553309a1
|
||||||
|
Create Date: 2025-06-16 12:24:09.159498
|
||||||
|
|
||||||
|
"""
|
||||||
|
from alembic import op
|
||||||
|
import sqlalchemy as sa
|
||||||
|
|
||||||
|
|
||||||
|
# revision identifiers, used by Alembic.
|
||||||
|
revision = 'b54422fb31e0'
|
||||||
|
down_revision = '0acd553309a1'
|
||||||
|
branch_labels = None
|
||||||
|
depends_on = None
|
||||||
|
|
||||||
|
|
||||||
|
def upgrade():
|
||||||
|
# ### commands auto generated by Alembic - please adjust! ###
|
||||||
|
with op.batch_alter_table('repayments_data', schema=None) as batch_op:
|
||||||
|
batch_op.add_column(sa.Column('fbn_transaction_id', sa.String(length=50), nullable=True))
|
||||||
|
batch_op.add_column(sa.Column('customer_id', sa.String(length=50), nullable=True))
|
||||||
|
batch_op.add_column(sa.Column('account_id', sa.String(length=50), nullable=True))
|
||||||
|
batch_op.add_column(sa.Column('repayment_amount', sa.Float(), nullable=True))
|
||||||
|
batch_op.add_column(sa.Column('amount_collected', sa.Float(), nullable=True))
|
||||||
|
|
||||||
|
with op.batch_alter_table('transactions', schema=None) as batch_op:
|
||||||
|
batch_op.add_column(sa.Column('phone_number', sa.String(length=50), nullable=True))
|
||||||
|
|
||||||
|
# ### end Alembic commands ###
|
||||||
|
|
||||||
|
|
||||||
|
def downgrade():
|
||||||
|
# ### commands auto generated by Alembic - please adjust! ###
|
||||||
|
with op.batch_alter_table('transactions', schema=None) as batch_op:
|
||||||
|
batch_op.drop_column('phone_number')
|
||||||
|
|
||||||
|
with op.batch_alter_table('repayments_data', schema=None) as batch_op:
|
||||||
|
batch_op.drop_column('amount_collected')
|
||||||
|
batch_op.drop_column('repayment_amount')
|
||||||
|
batch_op.drop_column('account_id')
|
||||||
|
batch_op.drop_column('customer_id')
|
||||||
|
batch_op.drop_column('fbn_transaction_id')
|
||||||
|
|
||||||
|
# ### end Alembic commands ###
|
||||||
Reference in New Issue
Block a user