Files
LoveACE-EndF/router/jwc/evaluate_model.py
2025-08-03 16:50:56 +08:00

96 lines
3.1 KiB
Python

from datetime import datetime
from typing import List, Optional
from pydantic import BaseModel, Field
from enum import Enum
from router.common_model import BaseResponse
class TaskStatusEnum(str, Enum):
"""任务状态枚举"""
IDLE = "idle"
INITIALIZING = "initializing"
RUNNING = "running"
PAUSED = "paused"
COMPLETED = "completed"
FAILED = "failed"
TERMINATED = "terminated"
class CourseInfo(BaseModel):
"""课程信息响应模型"""
course_id: str = Field("", description="课程ID")
course_name: str = Field("", description="课程名称")
teacher_name: str = Field("", description="教师姓名")
is_evaluated: str = Field("", description="是否已评价")
evaluation_content: str = Field("", description="评价内容")
# 统一响应数据模型
class EvaluationStatsData(BaseModel):
"""评价统计信息数据模型"""
total_courses: int = Field(0, description="总课程数")
pending_courses: int = Field(0, description="待评价课程数")
success_count: int = Field(0, description="成功评价数")
fail_count: int = Field(0, description="失败评价数")
current_index: int = Field(0, description="当前评价索引")
status: TaskStatusEnum = Field(TaskStatusEnum.IDLE, description="任务状态")
current_countdown: int = Field(0, description="当前倒计时")
start_time: Optional[datetime] = Field(None, description="开始时间")
end_time: Optional[datetime] = Field(None, description="结束时间")
error_message: str = Field("", description="错误消息")
course_list: List[CourseInfo] = Field(default_factory=list, description="课程列表")
class CurrentCourseInfoData(BaseModel):
"""当前评价课程信息数据模型"""
is_evaluating: bool = Field(False, description="是否正在评价")
course_name: str = Field("", description="课程名称")
teacher_name: str = Field("", description="教师姓名")
progress_text: str = Field("", description="进度文本")
countdown_seconds: int = Field(0, description="倒计时秒数")
current_index: int = Field(-1, description="当前索引")
total_pending: int = Field(0, description="总待评价数")
class TaskOperationData(BaseModel):
"""任务操作数据模型"""
task_status: TaskStatusEnum = Field(TaskStatusEnum.IDLE, description="任务状态")
class InitializeData(BaseModel):
"""初始化数据模型"""
total_courses: int = Field(0, description="总课程数")
pending_courses: int = Field(0, description="待评价课程数")
course_list: List[CourseInfo] = Field(default_factory=list, description="课程列表")
# 统一响应模型
class EvaluationStatsResponse(BaseResponse[EvaluationStatsData]):
"""评价统计信息响应模型"""
pass
class CurrentCourseInfoResponse(BaseResponse[CurrentCourseInfoData]):
"""当前评价课程信息响应模型"""
pass
class TaskOperationResponse(BaseResponse[TaskOperationData]):
"""任务操作响应模型"""
pass
class InitializeResponse(BaseResponse[InitializeData]):
"""初始化响应模型"""
pass