diff --git a/app/models/__init__.py b/app/models/__init__.py index 3d16094..9cb9074 100644 --- a/app/models/__init__.py +++ b/app/models/__init__.py @@ -6,6 +6,7 @@ from .repayment import Repayment from .loan_charge import LoanCharge from .offer import Offer from .charge import Charge +from .rac_checks import RACCheck -__all__ = ['Customer', 'Account', 'Loan', 'Transaction', 'Repayment', 'LoanCharge', 'Offer', 'Charge'] \ No newline at end of file +__all__ = ['Customer', 'Account', 'Loan', 'Transaction', 'Repayment', 'LoanCharge', 'Offer', 'Charge', 'RACCheck'] \ No newline at end of file diff --git a/app/models/rac_checks.py b/app/models/rac_checks.py index a5d3e60..59d0816 100644 --- a/app/models/rac_checks.py +++ b/app/models/rac_checks.py @@ -8,7 +8,7 @@ from sqlalchemy.types import JSON class RACCheck(db.Model): __tablename__ = 'rac_checks' - id = db.Column(db.String, primary_key=False) + id = db.Column(db.String, primary_key=True) transaction_id = db.Column(db.String(50), nullable=False) customer_id = db.Column(db.String, nullable=False) account_id = db.Column(db.String, nullable=False) diff --git a/migrations/versions/1b2339f43824_migration_on_thu_apr_24_17_42_25_utc_.py b/migrations/versions/1b2339f43824_migration_on_thu_apr_24_17_42_25_utc_.py new file mode 100644 index 0000000..c72a985 --- /dev/null +++ b/migrations/versions/1b2339f43824_migration_on_thu_apr_24_17_42_25_utc_.py @@ -0,0 +1,59 @@ +"""Migration on Thu Apr 24 17:42:25 UTC 2025 + +Revision ID: 1b2339f43824 +Revises: de9ad96ba34e +Create Date: 2025-04-24 17:43:09.589626 + +""" +from alembic import op +import sqlalchemy as sa + + +# revision identifiers, used by Alembic. +revision = '1b2339f43824' +down_revision = 'de9ad96ba34e' +branch_labels = None +depends_on = None + + +def upgrade(): + # ### commands auto generated by Alembic - please adjust! ### + op.create_table('rac_checks', + sa.Column('id', sa.String(), nullable=False), + sa.Column('transaction_id', sa.String(length=50), nullable=False), + sa.Column('customer_id', sa.String(), nullable=False), + sa.Column('account_id', sa.String(), nullable=False), + sa.Column('rac_response', sa.JSON(), 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('loan_charges', schema=None) as batch_op: + batch_op.alter_column('amount', + existing_type=sa.NUMERIC(precision=10, scale=2), + type_=sa.Float(), + existing_nullable=True) + + with op.batch_alter_table('loans', schema=None) as batch_op: + batch_op.add_column(sa.Column('upfront_fee', sa.Float(), nullable=True)) + batch_op.add_column(sa.Column('repayment_amount', sa.Float(), nullable=True)) + batch_op.add_column(sa.Column('installment_amount', 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('installment_amount') + batch_op.drop_column('repayment_amount') + batch_op.drop_column('upfront_fee') + + with op.batch_alter_table('loan_charges', schema=None) as batch_op: + batch_op.alter_column('amount', + existing_type=sa.Float(), + type_=sa.NUMERIC(precision=10, scale=2), + existing_nullable=True) + + op.drop_table('rac_checks') + # ### end Alembic commands ###