"""Link the unambiguous initial prompt cohort to canonical recipes."""

from alembic import op
import sqlalchemy as sa

revision = "185"
down_revision = "184"
branch_labels = None
depends_on = None


def upgrade() -> None:
    links = {
        "shop.ecommerce": ["Shop", "Ecommerce store website"],
        "restaurant.standard": ["Restaurant website", "Cafe and coffee shop website"],
        "professional_services.standard": [
            "Legal firm website",
            "Legal consultation landing page",
        ],
        "appointment_service.standard": [
            "Dental clinic website",
            "Cosmetic dentistry website",
            "Medical clinic website",
            "Specialist doctor website",
        ],
    }
    for slug, names in links.items():
        op.execute(
            sa.text(
                """
                UPDATE prompt_suggestions
                   SET composition_recipe_id = (
                       SELECT id FROM composition_recipes
                        WHERE slug = :slug AND is_active = true
                   )
                 WHERE name = ANY(CAST(:names AS text[]))
                """
            ).bindparams(slug=slug, names=names)
        )


def downgrade() -> None:
    op.execute(
        sa.text(
            """
            UPDATE prompt_suggestions
               SET composition_recipe_id = NULL
             WHERE composition_recipe_id IN (
                 SELECT id FROM composition_recipes
                  WHERE slug IN (
                    'shop.ecommerce', 'restaurant.standard',
                    'professional_services.standard', 'appointment_service.standard'
                  )
             )
            """
        )
    )
