"""工作台到投顾 Agent 的客户数据查询代理。""" from __future__ import annotations from sqlalchemy.ext.asyncio import AsyncSession from model.sys_user import SysUser from schemas.advisor import AdvisorDataQueryReq from service.advisor.agent_client import get_agent_client from service.advisor.permissions import ensure_customer_owned async def query_customer_data( db: AsyncSession, user: SysUser, *, auth_header: str, trace_id: str, req: AdvisorDataQueryReq, ) -> dict: """先做工作台归属校验,再透传到 Agent;customer_id 不由 Agent 客户端覆盖。""" await ensure_customer_owned(db, user.id, req.customer_id) payload = req.model_dump(exclude_none=True) result = await get_agent_client().data_query( payload, auth_header=auth_header, trace_id=trace_id, ) data = result["data"] or {} data.pop("sql", None) if result["warning"]: data["warning"] = result["warning"] return data