2025-03-17 18:31:20 +08:00

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="上下文参数")