"""Add pack_slug/pack_version provenance to project_functions.

Replaces the `{pack_slug}-{lib_slug}` slug-prefix convention for identifying which
feature pack installed a function, so uninstall/update can query by pack reliably.

Revision ID: 105
Revises: 104
"""
from alembic import op
import sqlalchemy as sa

revision = "105"
down_revision = "104"
branch_labels = None
depends_on = None


def upgrade() -> None:
    op.add_column("project_functions", sa.Column("pack_slug", sa.String(length=80), nullable=True))
    op.add_column("project_functions", sa.Column("pack_version", sa.String(length=40), nullable=True))
    op.create_index(
        "ix_project_functions_pack_slug",
        "project_functions",
        ["project_id", "pack_slug"],
    )


def downgrade() -> None:
    op.drop_index("ix_project_functions_pack_slug", table_name="project_functions")
    op.drop_column("project_functions", "pack_version")
    op.drop_column("project_functions", "pack_slug")
