# =============================================================================
# 企微IT智能服务台 — 扫码登录 API
# =============================================================================
# 说明：扫码登录是 Phase 1.1 的核心功能,用于替代坐席端"用户名密码+企微
# OAuth"双因素登录,提供"用企微 App 扫一扫登录浏览器坐席端"的体验。
#
# 完整流程:
#   ┌─────────┐  create  ┌─────────────┐  scan  ┌──────────┐
#   │ 浏览器  │ ───────→ │ ticket(120s)│ ←───── │ 企微 App │
#   │ 前端    │ ←─────── │ +OAuth URL  │ OAuth  │ 扫码授权  │
#   └─────────┘  qrcode_url  └─────────────┘ code   └──────────┘
#        │                          │                     │
#        │ poll                     │ scan                │
#        │ waiting/scanned          │ 写 scan:{ticket}    │
#        │                          ↓                     │
#        │                  ┌────────────────┐           │
#        │                  │ 已登录坐席(企微)│ confirm   │
#        │                  │ 点"确认登录"按钮 │ ────────→ │
#        │                  └────────────────┘           │
#        │                          │                     │
#        │ poll                     │ confirm             │
#        │ confirmed+token          │ 写 confirm:{ticket} │
#        ↓                          ↓                     │
#   拿到 token,跳坐席端主页                              │
#
# 端点列表(4 个):
#   POST /api/auth_qrcode/create              — 浏览器前端生成 ticket
#   GET  /api/auth_qrcode/poll/{ticket}        — 前端轮询扫码状态
#   POST /api/auth_qrcode/scan                 — 企微 OAuth2 回调(接收 code)
#   POST /api/auth_qrcode/confirm              — 当前登录坐席点确认
#
# 鉴权说明:
#   - create / scan / poll: 无需登录(浏览器刚加载登录页,用户未登录)
#   - confirm: 需要已登录坐席点确认(角色: agent / admin)
#   - 票据状态全部存 Redis,TTL 到期自动失效,无 DB 表
# =============================================================================

import logging
from typing import Optional

import redis.asyncio as aioredis
from fastapi import APIRouter, Depends, Path, Query

from app.config import settings
from app.dependencies import dep_redis, get_current_user, UserInfo
from app.schemas.qrcode import (
    QrcodeConfirmRequest,
    QrcodeConfirmResponse,
    QrcodeCreateResponse,
    QrcodePollResponse,
    QrcodeScanRequest,
    QrcodeScanResponse,
)
from a