"""Add user admin fields (admin_status, admin_remarks)

Revision ID: 028
Revises: 027
Create Date: 2026-07-05

补录管理员备注字段。生产数据库已手动添加过这些字段，
因此 upgrade 做幂等检查。
"""

import sqlalchemy as sa

from alembic import context, op

revision = "028"
down_revision = "027"
branch_labels = None
depends_on = None


def _column_exists(table: str, column: str) -> bool:
    if context.is_offline_mode():
        return False
    conn = op.get_bind()
    result = conn.execute(
        sa.text(
            "SELECT COUNT(*) FROM information_schema.columns " "WHERE table_name = :table AND column_name = :column"
        ),
        {"table": table, "column": column},
    )
    return result.scalar() > 0


def upgrade() -> None:
    if not _column_exists("users", "admin_status"):
        op.add_column("users", sa.Column("admin_status", sa.String(50), nullable=True))

    if not _column_exists("users", "admin_remarks"):
        op.add_column("users", sa.Column("admin_remarks", sa.Text(), nullable=True))


def downgrade() -> None:
    op.drop_column("users", "admin_remarks")
    op.drop_column("users", "admin_status")
