"""AAR 路由。""" 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.aar import AARRecord from app.models.user import User from app.schemas.common import ApiResponse, success from app.services.aar_agent import generate_aar router = APIRouter(prefix="/aars", tags=["aars"]) @router.get("", response_model=ApiResponse[list]) async def list_aars(company_id: str | None = Query(default=None), db: AsyncSession = Depends(get_db), user: User = Depends(get_current_user)): """获取 AAR 复盘列表。""" query = select(AARRecord) if company_id: query = query.where(AARRecord.company_id == company_id) result = await db.execute(query.order_by(AARRecord.created_at.desc())) items = result.scalars().all() return success(data=[ { "id": str(i.id), "company_id": str(i.company_id), "trigger_event": i.trigger_event, "original_plan": i.original_plan, "actual_result": i.actual_result, "gap_analysis": i.gap_analysis, "lessons": i.lessons, "improvements": i.improvements, } for i in items ]) @router.post("/generate", response_model=ApiResponse[dict]) async def generate_aar_report(req: dict, user: User = Depends(get_current_user)): """AI 生成五问复盘。""" result = await generate_aar( req.get("trigger_event", ""), req.get("original_plan", ""), req.get("actual_result", ""), ) return success(data=result)