"""Phase 11B client-aware Bank Analyzer ownership and engagement archive. Revision ID: 20260822_bank_client_archive_p11b Revises: 20260822_bank_to_tally_p11 """ from alembic import op import sqlalchemy as sa revision = "20260822_bank_client_archive_p11b" down_revision = "20260822_bank_to_tally_p11" branch_labels = None depends_on = None def upgrade(): op.add_column( "bank_statement_analysis_jobs", sa.Column("client_id", sa.Integer(), sa.ForeignKey("clients.id", ondelete="SET NULL"), nullable=True), ) op.add_column( "bank_statement_analysis_jobs", sa.Column("engagement_id", sa.Integer(), sa.ForeignKey("client_service_subscriptions.id", ondelete="SET NULL"), nullable=True), ) op.add_column( "bank_statement_analysis_jobs", sa.Column("ownership_confirmation", sa.Boolean(), nullable=False, server_default=sa.false()), ) op.add_column( "bank_statement_analysis_jobs", sa.Column("ownership_status", sa.String(30), nullable=False, server_default="not_checked"), ) op.add_column( "bank_statement_analysis_jobs", sa.Column("ownership_validation_json", sa.Text(), nullable=True), ) op.add_column( "bank_statement_analysis_jobs", sa.Column("engagement_archive_status", sa.String(30), nullable=False, server_default="not_requested"), ) op.add_column( "bank_statement_analysis_jobs", sa.Column("engagement_archive_json", sa.Text(), nullable=True), ) op.create_index( "ix_bank_statement_analysis_jobs_client_id", "bank_statement_analysis_jobs", ["client_id"], ) op.create_index( "ix_bank_statement_analysis_jobs_engagement_id", "bank_statement_analysis_jobs", ["engagement_id"], ) op.create_index( "ix_bank_statement_analysis_jobs_ownership_status", "bank_statement_analysis_jobs", ["ownership_status"], ) op.create_index( "ix_bank_statement_analysis_jobs_engagement_archive_status", "bank_statement_analysis_jobs", ["engagement_archive_status"], ) def downgrade(): op.drop_index("ix_bank_statement_analysis_jobs_engagement_archive_status", table_name="bank_statement_analysis_jobs") op.drop_index("ix_bank_statement_analysis_jobs_ownership_status", table_name="bank_statement_analysis_jobs") op.drop_index("ix_bank_statement_analysis_jobs_engagement_id", table_name="bank_statement_analysis_jobs") op.drop_index("ix_bank_statement_analysis_jobs_client_id", table_name="bank_statement_analysis_jobs") op.drop_column("bank_statement_analysis_jobs", "engagement_archive_json") op.drop_column("bank_statement_analysis_jobs", "engagement_archive_status") op.drop_column("bank_statement_analysis_jobs", "ownership_validation_json") op.drop_column("bank_statement_analysis_jobs", "ownership_status") op.drop_column("bank_statement_analysis_jobs", "ownership_confirmation") op.drop_column("bank_statement_analysis_jobs", "engagement_id") op.drop_column("bank_statement_analysis_jobs", "client_id")