"""Administrator-only risk-model configuration 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.model_config import ModelWeightConfigData, ModelWeightConfigUpdate from app.services.model_config import ModelConfigService router = APIRouter(prefix="/model-config", tags=["model-config"]) @router.get("", response_model=ApiResponse[ModelWeightConfigData]) async def get_model_config( session: DatabaseSession, _current_user: Annotated[UserAccount, Depends(require_permission("model_weight.manage"))], ) -> ApiResponse[ModelWeightConfigData]: return ApiResponse(data=await ModelConfigService(session).get()) @router.patch("", response_model=ApiResponse[ModelWeightConfigData]) async def update_model_config( payload: ModelWeightConfigUpdate, session: DatabaseSession, current_user: Annotated[UserAccount, Depends(require_permission("model_weight.manage", operate=True))], ) -> ApiResponse[ModelWeightConfigData]: return ApiResponse(data=await ModelConfigService(session).update(payload, current_user))