"""Add geo fields to visitors

Revision ID: b49f6f7baa36
Revises: 4c9ee9029499
Create Date: 2025-12-01 11:58:45.133859

"""
from typing import Sequence, Union

from alembic import op
import sqlalchemy as sa


# revision identifiers, used by Alembic.
revision: str = 'b49f6f7baa36'
down_revision: Union[str, Sequence[str], None] = '4c9ee9029499'
branch_labels: Union[str, Sequence[str], None] = None
depends_on: Union[str, Sequence[str], None] = None


def upgrade():
    # Add new columns
    op.add_column("visitors", sa.Column("email", sa.String(length=100), nullable=True))
    op.add_column("visitors", sa.Column("phone", sa.String(length=100), nullable=True))

    # Make name nullable (optional pre-chat)
    op.alter_column("visitors", "name", existing_type=sa.String(length=100), nullable=True)

    # Optional: if visitor_id can be auto-generated and nullable initially
    # Remove if you want visitor_id ALWAYS required
    op.alter_column("visitors", "visitor_id", existing_type=sa.String(length=100), nullable=True)


def downgrade():
    # Reverse changes
    op.drop_column("visitors", "email")
    op.drop_column("visitors", "phone")


    # Make visitor_id required again
    op.alter_column("visitors", "visitor_id", existing_type=sa.String(length=100), nullable=False)
