"""add agent OTP fields

Revision ID: 010_add_agent_otp
Revises: 009_add_message_status
Create Date: 2026-06-16

v0.5.6: 添加坐席 OTP 二次验证字段
- 新增 otp_secret 字段（存储 TOTP secret,绑定时生成）
- 新增 otp_enabled 字段（是否启用 OTP 二次验证）
- 都是 nullable=True,默认 False,不破坏现有坐席

为什么需要这个 migration:
  Agent 模型里加了 otp_secret 和 otp_enabled 字段,
  但没有对应的 alembic migration 把它落到 DB schema 里。
  查询时报 UndefinedColumnError:
    column agents.otp_secret does not exist

"""
from alembic import op
import sqlalchemy as sa


# revision identifiers
revision = '010_add_agent_otp'
down_revision = '009_add_message_status'
branch_labels = None
depends_on = None


def upgrade() -> None:
    """添加 otp_secret + otp_enabled 字段"""
    op.add_column(
        'agents',
        sa.Column(
            'otp_secret',
            sa.String(64),
            nullable=True,
            comment='TOTP 密钥（base32,绑定时生成）'
        )
    )
    op.add_column(
        'agents',
        sa.Column(
            'otp_enabled',
            sa.Boolean(),
            nullable=False,
            server_default=sa.text('false'),
            comment='是否启用 OTP 二次验证'
        )
    )


def downgrade() -> None:
    """删除 OTP 字段"""
    op.drop_column('agents', 'otp_enabled')
    op.drop_column('agents', 'otp_secret')