"""分身接管配置 API""" from fastapi import APIRouter, Depends, Body from sqlalchemy.orm import Session from database import get_db from models import Authorization from responses import ok, fail router = APIRouter(tags=["分身接管"]) @router.put("/avatar/{avatar_id}/authorizations/takeover") def update_takeover_config( avatar_id: str, payload: dict = Body(...), db: Session = Depends(get_db), ): """更新分身接管配置""" auth_id = payload.get("authorizationId") or payload.get("authorization_id") if not auth_id: return fail("缺少 authorization_id", 400) auth = db.query(Authorization).filter(Authorization.id == auth_id).first() if not auth: return fail("授权不存在", 404) if "takeover_enabled" in payload: auth.takeover_enabled = payload["takeover_enabled"] if "takeover_mode" in payload: mode = payload["takeover_mode"] if mode not in ("immediate", "delayed"): return fail("takeover_mode 必须是 immediate 或 delayed", 400) auth.takeover_mode = mode if "takeover_delay_seconds" in payload: delay = payload["takeover_delay_seconds"] if not isinstance(delay, int) or delay < 5: return fail("takeover_delay_seconds 必须 >= 5", 400) auth.takeover_delay_seconds = delay db.commit() return ok(auth.to_dict())