"""客户成功运营路由 — QBR + Expansion + Churn Risk。""" from fastapi import APIRouter, Depends, Query from sqlalchemy.ext.asyncio import AsyncSession from app.core.database import get_db from app.core.dependencies import get_current_user from app.models.user import User from app.schemas.common import ApiResponse, success from app.services.qbr_generator import generate_qbr from app.services.expansion_play import identify_expansion_opportunities from app.services.churn_risk_detector import detect_churn_risk router = APIRouter(prefix="/customer-success", tags=["customer-success"]) @router.post("/qbr", response_model=ApiResponse[dict]) async def generate_qbr_report(req: dict, user: User = Depends(get_current_user)): """自动生成 QBR 季度业务回顾。""" result = await generate_qbr(req.get("company_id", ""), req.get("quarter_data", "")) return success(data=result) @router.post("/expansion", response_model=ApiResponse[list]) async def identify_expansion(req: dict, user: User = Depends(get_current_user)): """识别扩展机会。""" result = await identify_expansion_opportunities(req.get("company_data", "")) return success(data=result) @router.get("/churn-risk", response_model=ApiResponse[list]) async def get_churn_risk(db: AsyncSession = Depends(get_db), user: User = Depends(get_current_user)): """获取流失风险预警。""" result = await detect_churn_risk(db, user.tenant_id) return success(data=result)