"""Risk prediction endpoints.""" from typing import Annotated from fastapi import APIRouter, Depends from app.api.dependencies import DatabaseSession, require_permission from app.models.entities import UserAccount from app.schemas.common import ApiResponse from app.schemas.risk_prediction import ModelInfo, RiskAssessmentRequest, RiskAssessmentResult from app.services.risk_prediction import RiskPredictionService router = APIRouter(prefix="/risk-predictions", tags=["risk-predictions"]) @router.get("/model-info", response_model=ApiResponse[ModelInfo]) async def model_info( _: Annotated[UserAccount, Depends(require_permission("risk.assess"))], ) -> ApiResponse[ModelInfo]: return ApiResponse(data=RiskPredictionService.model_info()) @router.post("/preview", response_model=ApiResponse[RiskAssessmentResult]) async def preview_risk( request: RiskAssessmentRequest, session: DatabaseSession, _: Annotated[UserAccount, Depends(require_permission("risk.assess", operate=True))], ) -> ApiResponse[RiskAssessmentResult]: return ApiResponse(data=await RiskPredictionService.preview(request, session))