"""Add detail_description rich text to general_settings.

Revision ID: 034_general_settings_detail_description
Revises: 033_general_settings
Create Date: 2026-08-15
"""

from typing import Sequence, Union

import sqlalchemy as sa
from alembic import op

revision: str = "034_gs_detail_description"
down_revision: Union[str, None] = "033_general_settings"
branch_labels: Union[str, Sequence[str], None] = None
depends_on: Union[str, Sequence[str], None] = None


def upgrade() -> None:
    conn = op.get_bind()
    inspector = sa.inspect(conn)
    tables = set(inspector.get_table_names())

    if "alembic_version" in tables:
        op.execute("ALTER TABLE alembic_version MODIFY version_num VARCHAR(64) NOT NULL")

    if "general_settings" not in tables:
        return
    columns = {col["name"] for col in inspector.get_columns("general_settings")}
    if "detail_description" in columns:
        return
    op.add_column(
        "general_settings",
        sa.Column("detail_description", sa.Text(), nullable=True),
    )


def downgrade() -> None:
    conn = op.get_bind()
    inspector = sa.inspect(conn)
    tables = set(inspector.get_table_names())
    if "general_settings" not in tables:
        return
    columns = {col["name"] for col in inspector.get_columns("general_settings")}
    if "detail_description" in columns:
        op.drop_column("general_settings", "detail_description")
