"""Read-only portfolio-analysis endpoint.""" from fastapi import APIRouter, Depends from app.api.dependencies.auth import build_request_context from app.api.dependencies.rate_limit import enforce_rate_limit from app.api.schemas.portfolio_analysis import PortfolioAnalysisQuery from app.core.contracts import RequestContext from app.service.portfolio_analysis_service import PortfolioAnalysisService router = APIRouter( prefix="/api/v1/advisor", tags=["advisor-portfolio-analysis"], dependencies=[Depends(enforce_rate_limit)], ) @router.post("/portfolio-analysis") async def analyze_portfolio( payload: PortfolioAnalysisQuery, context: RequestContext = Depends(build_request_context), # noqa: B008 ) -> dict[str, object]: return await PortfolioAnalysisService(enforce_profile_governance=True).analyze_for_agent( payload, context )