"""add_qa_dynamic_checkpoint_and_sub_points

Revision ID: 43020f216ee0
Revises: 2e7a33888d03
Create Date: 2026-10-12 13:56:32.889398

"""
from typing import Sequence, Union

from alembic import op
import sqlalchemy as sa


# revision identifiers, used by Alembic.
revision: str = '43020f216ee0'
down_revision: Union[str, None] = '2e7a33888d03'
branch_labels: Union[str, Sequence[str], None] = None
depends_on: Union[str, Sequence[str], None] = None


def upgrade() -> None:
    op.execute("""
        ALTER TABLE qa_checkpoint_item 
        ADD COLUMN IF NOT EXISTS model_specs JSONB DEFAULT '{}'::jsonb,
        ADD COLUMN IF NOT EXISTS sub_points JSONB DEFAULT '[]'::jsonb,
        ADD COLUMN IF NOT EXISTS reference_diagram_url VARCHAR(500);

        ALTER TABLE qa_checkpoint_response 
        ADD COLUMN IF NOT EXISTS sub_point_values JSONB DEFAULT '{}'::jsonb;
    """)


def downgrade() -> None:
    op.execute("""
        ALTER TABLE qa_checkpoint_response DROP COLUMN IF EXISTS sub_point_values;
        ALTER TABLE qa_checkpoint_item DROP COLUMN IF EXISTS reference_diagram_url;
        ALTER TABLE qa_checkpoint_item DROP COLUMN IF EXISTS sub_points;
        ALTER TABLE qa_checkpoint_item DROP COLUMN IF EXISTS model_specs;
    """)

