33 lines
1.2 KiB
Python
33 lines
1.2 KiB
Python
|
|
from fastapi import APIRouter, Depends
|
||
|
|
from sqlalchemy.orm import Session
|
||
|
|
|
||
|
|
from app.core.response import ApiResponse, ok
|
||
|
|
from app.core.user_context import UserContext, get_user_context
|
||
|
|
from app.db.session import get_db
|
||
|
|
from app.schemas.teaching import CreateTeachingEvaluationRequest, TeachingEvaluationResponse, TeachingItemsResponse
|
||
|
|
from app.services.teaching_service import TeachingService
|
||
|
|
|
||
|
|
router = APIRouter()
|
||
|
|
|
||
|
|
|
||
|
|
@router.get("/cases/{case_id}/items", response_model=ApiResponse[TeachingItemsResponse])
|
||
|
|
def get_teaching_items(
|
||
|
|
case_id: int,
|
||
|
|
ctx: UserContext = Depends(get_user_context),
|
||
|
|
db: Session = Depends(get_db),
|
||
|
|
):
|
||
|
|
"""教学列表:返回病例、题目、选项、答案、解析文本和教学视频。"""
|
||
|
|
return ok(TeachingService(db).list_items(ctx, case_id))
|
||
|
|
|
||
|
|
|
||
|
|
@router.post("/evaluation", response_model=ApiResponse[TeachingEvaluationResponse])
|
||
|
|
async def create_teaching_evaluation(
|
||
|
|
payload: CreateTeachingEvaluationRequest,
|
||
|
|
ctx: UserContext = Depends(get_user_context),
|
||
|
|
db: Session = Depends(get_db),
|
||
|
|
):
|
||
|
|
"""教学评价:根据教学互动作答生成 AI 评价并写入训练记录。"""
|
||
|
|
result = await TeachingService(db).create_evaluation(ctx, payload)
|
||
|
|
db.commit()
|
||
|
|
return ok(result)
|