"""Enrichment re-evaluation + visible per-product status (no silent failures). Revision ID: 0031_enrichment_reevaluate Revises: 0030_kb_evidence_model """ from alembic import op import sqlalchemy as sa revision = "0031_enrichment_reevaluate" down_revision = "0030_kb_evidence_model" branch_labels = None depends_on = None def upgrade(): op.add_column("product_enrichments", sa.Column("reevaluate", sa.Boolean(), nullable=False, server_default=sa.text("false"))) op.add_column("product_enrichments", sa.Column("last_attempt_at", sa.DateTime(timezone=True), nullable=True)) op.add_column("product_enrichments", sa.Column("ui_status", sa.String(32), nullable=True)) op.add_column("product_enrichments", sa.Column("reason_code", sa.String(48), nullable=True)) op.create_index("ix_product_enrichments_reevaluate", "product_enrichments", ["reevaluate"]) op.create_index("ix_product_enrichments_ui_status", "product_enrichments", ["ui_status"]) def downgrade(): op.drop_index("ix_product_enrichments_ui_status", table_name="product_enrichments") op.drop_index("ix_product_enrichments_reevaluate", table_name="product_enrichments") for name in ("reason_code", "ui_status", "last_attempt_at", "reevaluate"): op.drop_column("product_enrichments", name)