"""pgvector extension, HNSW index, and GIN full-text index

Revision ID: 0001_pgvector
Revises:
Create Date: 2026-02-20

This is a MANUAL migration — must run before the autogenerated initial_schema
migration so that the vector column type is available.
"""

from collections.abc import Sequence

from alembic import op

revision: str = "0001_pgvector"
down_revision: str | None = None
branch_labels: str | Sequence[str] | None = None
depends_on: str | Sequence[str] | None = None


def upgrade() -> None:
    # Enable pgvector extension (pre-installed on Neon)
    op.execute("CREATE EXTENSION IF NOT EXISTS vector")

    # HNSW index for cosine-similarity vector search on embeddings
    # Created after initial_schema migration adds the table — see 0002 migration
    # (cannot create index on non-existent table; placed here as reference)
    # Actual HNSW index is in migration 0002_initial_schema.


def downgrade() -> None:
    op.execute("DROP EXTENSION IF EXISTS vector")
