"""行为助推路由。""" from fastapi import APIRouter, Depends, Query from sqlalchemy import select from sqlalchemy.ext.asyncio import AsyncSession from app.core.database import get_db from app.core.dependencies import get_current_user from app.models.nudge import NudgeRecord from app.models.user import User from app.schemas.common import ApiResponse, success from app.services.nudge_agent import select_nudge_strategy router = APIRouter(prefix="/nudges", tags=["nudges"]) @router.get("", response_model=ApiResponse[list]) async def list_nudges(company_id: str | None = Query(default=None), db: AsyncSession = Depends(get_db), user: User = Depends(get_current_user)): """获取助推记录列表。""" query = select(NudgeRecord) if company_id: query = query.where(NudgeRecord.company_id == company_id) result = await db.execute(query.order_by(NudgeRecord.created_at.desc())) items = result.scalars().all() return success(data=[ { "id": str(i.id), "company_id": str(i.company_id), "nudge_type": i.nudge_type, "message": i.message, "accepted": i.accepted, "effect_result": i.effect_result, } for i in items ]) @router.post("/select", response_model=ApiResponse[dict]) async def select_nudge(req: dict, user: User = Depends(get_current_user)): """AI 选择助推策略。""" result = await select_nudge_strategy(req.get("context", "")) return success(data=result)