"""add calculator in ToolCategory

Revision ID: c71db647d354
Revises: b3a1c7e94f12
Create Date: 2026-04-02 13:53:46.184244

"""

from typing import Sequence, Union

from alembic import op
from alembic_postgresql_enum import TableReference

# revision identifiers, used by Alembic.
revision: str = "c71db647d354"
down_revision: Union[str, None] = "b3a1c7e94f12"
branch_labels: Union[str, Sequence[str], None] = None
depends_on: Union[str, Sequence[str], None] = None


def upgrade() -> None:
    # ### commands auto generated by Alembic - please adjust! ###
    op.drop_index(op.f("ix_api_keys_key_hash"), table_name="api_keys")
    op.create_index("ix_api_keys_key_hash", "api_keys", ["key_hash"], unique=False)
    op.sync_enum_values(
        enum_schema="public",
        enum_name="tool_category",
        new_values=[
            "http_api",
            "end_call",
            "transfer_call",
            "calculator",
            "native",
            "integration",
        ],
        affected_columns=[
            TableReference(
                table_schema="public", table_name="tools", column_name="category"
            )
        ],
        enum_values_to_rename=[],
    )
    # ### end Alembic commands ###


def downgrade() -> None:
    # ### commands auto generated by Alembic - please adjust! ###
    op.sync_enum_values(
        enum_schema="public",
        enum_name="tool_category",
        new_values=["http_api", "end_call", "transfer_call", "native", "integration"],
        affected_columns=[
            TableReference(
                table_schema="public", table_name="tools", column_name="category"
            )
        ],
        enum_values_to_rename=[],
    )
    op.drop_index("ix_api_keys_key_hash", table_name="api_keys")
    op.create_index(op.f("ix_api_keys_key_hash"), "api_keys", ["key_hash"], unique=True)
    # ### end Alembic commands ###
