from typing import Annotated from fastapi import APIRouter, Depends from app.api.dependencies import DatabaseSession, require_permission from app.models.entities import OperationAudit, UserAccount from app.schemas.common import ApiResponse router = APIRouter(prefix="/monitoring", tags=["monitoring"]) @router.post("/risk") async def monitor_risk( payload: dict, session: DatabaseSession, current_user: Annotated[UserAccount, Depends(require_permission("risk.assess", operate=True))], ) -> ApiResponse[dict]: session.add( OperationAudit( actor_user_id=current_user.id, actor_emp_no=current_user.emp_no, action="risk.monitor.add", resource_type="risk_assessment", resource_id=str(payload.get("subject_id") or ""), audit_metadata=payload, ) ) return ApiResponse(data={"monitored": True, "subject_id": payload.get("subject_id")})