46 lines
1.4 KiB
Python
46 lines
1.4 KiB
Python
|
"""
|
||
|
任务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="上下文参数")
|