"""Classify project-fit evidence and defer production validation explicitly. Revision ID: 20260826_0017 Revises: 20260826_0016 """ from collections.abc import Sequence import sqlalchemy as sa from alembic import op revision: str = "20260826_0017" down_revision: str | None = "20260826_0016" branch_labels: str | Sequence[str] | None = None depends_on: str | Sequence[str] | None = None def upgrade() -> None: op.add_column( "project_fit_evidence", sa.Column( "evidence_class", sa.String(32), server_default="CATALOG_REFERENCE", nullable=False, ), ) op.add_column( "project_fit_evidence", sa.Column( "engineering_integration", sa.String(32), server_default="PASS", nullable=False, ), ) op.add_column( "project_fit_evidence", sa.Column( "production_validation", sa.String(48), server_default="DEFERRED_EXTERNAL_VALIDATION", nullable=False, ), ) op.add_column( "project_fit_evidence", sa.Column("production_action", sa.String(32), server_default="NONE", nullable=False), ) op.create_index( "ix_project_fit_evidence_evidence_class", "project_fit_evidence", ["evidence_class"], ) op.create_index( "ix_project_fit_evidence_production_validation", "project_fit_evidence", ["production_validation"], ) for column in ( "evidence_class", "engineering_integration", "production_validation", "production_action", ): op.alter_column("project_fit_evidence", column, server_default=None) def downgrade() -> None: op.drop_index( "ix_project_fit_evidence_production_validation", table_name="project_fit_evidence", ) op.drop_index( "ix_project_fit_evidence_evidence_class", table_name="project_fit_evidence", ) op.drop_column("project_fit_evidence", "production_action") op.drop_column("project_fit_evidence", "production_validation") op.drop_column("project_fit_evidence", "engineering_integration") op.drop_column("project_fit_evidence", "evidence_class")