"""add acceptance_criteria column to scenarios Revision ID: 3f8a2c91d4e7 Revises: d5f6193ba7c8 Create Date: 2026-08-25 10:00:00.000000 """ from typing import Sequence, Union import sqlalchemy as sa from alembic import op from sqlalchemy import inspect # revision identifiers, used by Alembic. revision: str = '3f8a2c91d4e7' down_revision: Union[str, Sequence[str], None] = 'd5f6193ba7c8' branch_labels: Union[str, Sequence[str], None] = None depends_on: Union[str, Sequence[str], None] = None def _column_exists(inspector, table_name: str, column_name: str) -> bool: columns = inspector.get_columns(table_name) return any(col['name'] == column_name for col in columns) def upgrade() -> None: """Add scenarios.acceptance_criteria for per-scenario go/no-go thresholds.""" conn = op.get_bind() inspector = inspect(conn) if not _column_exists(inspector, 'scenarios', 'acceptance_criteria'): with op.batch_alter_table('scenarios', schema=None) as batch_op: batch_op.add_column(sa.Column('acceptance_criteria', sa.Text(), nullable=True)) def downgrade() -> None: conn = op.get_bind() inspector = inspect(conn) if _column_exists(inspector, 'scenarios', 'acceptance_criteria'): with op.batch_alter_table('scenarios', schema=None) as batch_op: batch_op.drop_column('acceptance_criteria')