"""Add explicit Start Shopping config to collection landing pages.

Revision ID: 0052_add_collection_start_shopping_config
Revises: 0051_add_collection_icon_compare_price
"""

from alembic import op
import sqlalchemy as sa
from sqlalchemy.dialects import postgresql
from sqlalchemy import inspect


revision = "0052_add_collection_start_shopping_config"
down_revision = "0051_add_collection_icon_compare_price"
branch_labels = None
depends_on = None


def upgrade() -> None:
    bind = op.get_bind()
    inspector = inspect(bind)
    columns = {column["name"] for column in inspector.get_columns("collection_landing_page")}
    if "start_shopping_config" not in columns:
        op.add_column(
            "collection_landing_page",
            sa.Column("start_shopping_config", postgresql.JSONB(astext_type=sa.Text()), nullable=True),
        )


def downgrade() -> None:
    bind = op.get_bind()
    inspector = inspect(bind)
    columns = {column["name"] for column in inspector.get_columns("collection_landing_page")}
    if "start_shopping_config" in columns:
        op.drop_column("collection_landing_page", "start_shopping_config")
