"""Add medium AI pipeline scoring fields and audit metadata. Revision ID: 0004_medium_ai_pipeline Revises: 0003_rule_only_execution Create Date: 2026-08-27 """ import sqlalchemy as sa from alembic import op from sqlalchemy.dialects import postgresql revision: str = "0004_medium_ai_pipeline" down_revision: str | None = "0003_rule_only_execution" branch_labels: str | None = None depends_on: str | None = None def upgrade() -> None: op.add_column("scoring_runs", sa.Column("ai_score", sa.Integer(), nullable=True)) op.add_column("scoring_runs", sa.Column("final_score", sa.Integer(), nullable=True)) op.add_column("scoring_runs", sa.Column("scoring_mode", sa.String(length=32), nullable=True)) op.add_column("scoring_runs", sa.Column("degraded", sa.Boolean(), nullable=True)) op.add_column("scoring_runs", sa.Column("ai_metadata", postgresql.JSONB(), nullable=True)) def downgrade() -> None: op.drop_column("scoring_runs", "ai_metadata") op.drop_column("scoring_runs", "degraded") op.drop_column("scoring_runs", "scoring_mode") op.drop_column("scoring_runs", "final_score") op.drop_column("scoring_runs", "ai_score")