diff --git a/app/models/repayments_data.py b/app/models/repayments_data.py index 038bbb3..94abf37 100644 --- a/app/models/repayments_data.py +++ b/app/models/repayments_data.py @@ -1,11 +1,17 @@ from datetime import datetime, timezone from app.extensions import db + class RepaymentsData(db.Model): - __tablename__ = 'repayments_data' + __tablename__ = "repayments_data" id = db.Column(db.Integer, primary_key=True, autoincrement=True) 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) response_code = db.Column(db.String(10), nullable=True) response_descr = db.Column(db.String(255), nullable=True) @@ -14,11 +20,15 @@ class RepaymentsData(db.Model): return { "id": self.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, "response_code": self.response_code, "response_descr": self.response_descr, } - def __repr__(self): return f"" diff --git a/app/models/transaction.py b/app/models/transaction.py index f90c0da..5a6db18 100644 --- a/app/models/transaction.py +++ b/app/models/transaction.py @@ -17,8 +17,10 @@ class Transaction(db.Model): customer_id = db.Column(db.String(50), nullable=True) type = 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()) updated_at = db.Column(db.DateTime(timezone=True), server_default=func.now(), onupdate=func.now()) + def __repr__(self): return f'' diff --git a/migrations/versions/b54422fb31e0_.py b/migrations/versions/b54422fb31e0_.py new file mode 100644 index 0000000..dd26721 --- /dev/null +++ b/migrations/versions/b54422fb31e0_.py @@ -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 ###