"""Add BPI & rounding config to interest_configurations

Revision ID: c3a1f8e2d9b5
Revises: b7d968f1db02
Create Date: 2026-06-11 10:00:00.000000

"""
from typing import Sequence, Union

from alembic import op
import sqlalchemy as sa

# revision identifiers, used by Alembic.
revision: str = 'c3a1f8e2d9b5'
down_revision: Union[str, None] = 'b7d968f1db02'
branch_labels: Union[str, Sequence[str], None] = None
depends_on: Union[str, Sequence[str], None] = None


def upgrade() -> None:
    op.add_column('interest_configurations',
        sa.Column('bpi_day_convention', sa.String(length=50), nullable=True, server_default='ACTUAL_365'))
    op.add_column('interest_configurations',
        sa.Column('emi_rounding', sa.String(length=20), nullable=True, server_default='ROUND'))
    op.add_column('interest_configurations',
        sa.Column('emi_rounding_digits', sa.Integer(), nullable=True, server_default='0'))
    op.add_column('interest_configurations',
        sa.Column('interest_rounding', sa.String(length=20), nullable=True, server_default='ROUND'))
    op.add_column('interest_configurations',
        sa.Column('interest_rounding_digits', sa.Integer(), nullable=True, server_default='0'))
    op.add_column('interest_configurations',
        sa.Column('bpi_rounding', sa.String(length=20), nullable=True, server_default='ROUND'))
    op.add_column('interest_configurations',
        sa.Column('bpi_rounding_digits', sa.Integer(), nullable=True, server_default='0'))


def downgrade() -> None:
    op.drop_column('interest_configurations', 'bpi_rounding_digits')
    op.drop_column('interest_configurations', 'bpi_rounding')
    op.drop_column('interest_configurations', 'interest_rounding_digits')
    op.drop_column('interest_configurations', 'interest_rounding')
    op.drop_column('interest_configurations', 'emi_rounding_digits')
    op.drop_column('interest_configurations', 'emi_rounding')
    op.drop_column('interest_configurations', 'bpi_day_convention')
