"""default chosen assistants to none

Revision ID: 26b931506ecb
Revises: 2daa494a0851
Create Date: 2024-11-12 13:23:29.858995

"""
from alembic import op
import sqlalchemy as sa
from sqlalchemy.dialects import postgresql

# revision identifiers, used by Alembic.
revision = "26b931506ecb"
down_revision = "2daa494a0851"
branch_labels = None
depends_on = None


def upgrade() -> None:
    op.add_column(
        "user", sa.Column("chosen_assistants_new", postgresql.JSONB(), nullable=True)
    )

    op.execute(
        """
    UPDATE "user"
    SET chosen_assistants_new =
        CASE
            WHEN chosen_assistants = '[-2, -1, 0]' THEN NULL
            ELSE chosen_assistants
        END
    """
    )

    op.drop_column("user", "chosen_assistants")

    op.alter_column(
        "user", "chosen_assistants_new", new_column_name="chosen_assistants"
    )


def downgrade() -> None:
    op.add_column(
        "user",
        sa.Column(
            "chosen_assistants_old",
            postgresql.JSONB(),
            nullable=False,
            server_default="[-2, -1, 0]",
        ),
    )

    op.execute(
        """
    UPDATE "user"
    SET chosen_assistants_old =
        CASE
            WHEN chosen_assistants IS NULL THEN '[-2, -1, 0]'::jsonb
            ELSE chosen_assistants
        END
    """
    )

    op.drop_column("user", "chosen_assistants")

    op.alter_column(
        "user", "chosen_assistants_old", new_column_name="chosen_assistants"
    )
