from alembic import op import sqlalchemy as sa revision = "20260903_cash_payment_rules" down_revision = "20260902_ws_enrollment_secret" branch_labels = None depends_on = None def upgrade(): op.create_table( "accounting_cash_payment_rule_settings", sa.Column("id", sa.Integer(), primary_key=True, autoincrement=True), sa.Column("tenant_id", sa.Integer(), sa.ForeignKey("tenants.id", ondelete="CASCADE"), nullable=False), sa.Column("cash_limit", sa.Float(), nullable=False, server_default="10000"), sa.Column("effective_from", sa.Date(), nullable=False, server_default="2017-04-01"), sa.Column("split_window_days", sa.Integer(), nullable=False, server_default="3"), sa.Column("near_limit_percent", sa.Float(), nullable=False, server_default="80"), sa.Column("max_allocation_days", sa.Integer(), nullable=False, server_default="5"), sa.Column("updated_by_user_id", sa.Integer(), sa.ForeignKey("users.id", ondelete="SET NULL"), nullable=True), sa.Column("created_at_utc", sa.DateTime(), nullable=False, server_default=sa.text("CURRENT_TIMESTAMP")), sa.Column("updated_at_utc", sa.DateTime(), nullable=False, server_default=sa.text("CURRENT_TIMESTAMP")), sa.UniqueConstraint("tenant_id", name="uq_cash_payment_rule_settings_tenant"), ) op.create_index("ix_cash_payment_rule_settings_tenant", "accounting_cash_payment_rule_settings", ["tenant_id"], unique=False) def downgrade(): op.drop_index("ix_cash_payment_rule_settings_tenant", table_name="accounting_cash_payment_rule_settings") op.drop_table("accounting_cash_payment_rule_settings")