""" 任务API模型模块 包含任务相关的API请求和响应的数据模型 """ from typing import Dict, Any, List, Optional from pydantic import BaseModel, Field from config.task_config import TaskType, TaskStatus # 任务相关模型 class TaskInput(BaseModel): name: str = Field(..., description="任务名称") task_type: TaskType = Field( ..., description="任务类型,可选值为:" + ", ".join([t.value for t in TaskType]), example=TaskType.NORMAL ) class TaskBatchInput(BaseModel): tasks: List[TaskInput] class TaskIdList(BaseModel): task_ids: List[str] class TaskTypeInfo(BaseModel): key: str name: str description: str # 任务编辑相关模型 class TaskUpdateInput(BaseModel): name: Optional[str] = None description: Optional[str] = None task_type: Optional[TaskType] = None blocks: Optional[List[Dict[str, Any]]] = None variables: Optional[Dict[str, Any]] = None schedule: Optional[Dict[str, Any]] = None class TaskEditInput(BaseModel): task_id: str blocks: List[Dict[str, Any]] variables: Optional[Dict[str, Any]] = {} priority: Optional[int] = Field(1, description="任务优先级") input_params: Optional[Dict[str, Any]] = Field(None, description="任务输入参数") block_outputs: Optional[Dict[str, Any]] = Field(None, description="块输出参数") context_params: Optional[Dict[str, Any]] = Field(None, description="上下文参数")