2025-03-18 18:34:03 +08:00

53 lines
2.5 KiB
Python

"""
任务实例相关API模型
包含任务实例的请求和响应的数据模型
"""
from typing import Dict, Any, List, Optional
from pydantic import BaseModel, Field
from enum import Enum
# 请求模型
class TaskInstanceCreateInput(BaseModel):
"""任务实例创建输入模型"""
task_id: str = Field(..., description="任务ID")
name: Optional[str] = Field(None, description="任务名称")
variables: Optional[Dict[str, Any]] = Field(None, description="任务变量")
priority: 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="上下文参数")
class TaskInstanceUpdateInput(BaseModel):
"""任务实例更新输入模型"""
variables: Optional[Dict[str, Any]] = Field(None, description="任务变量")
priority: Optional[int] = Field(None, 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="上下文参数")
# 任务输入参数模型
class TaskInputParamItem(BaseModel):
"""任务输入参数项目"""
key: str = Field(..., description="参数名")
label: str = Field(..., description="参数标签")
type: str = Field(..., description="参数类型")
required: bool = Field(False, description="是否必填")
default_value: Optional[Any] = Field(None, description="默认值")
description: Optional[str] = Field(None, description="参数说明")
options: Optional[Dict[str, Any]] = Field(None, description="选项配置,用于下拉选择、单选、多选类型")
validation_rules: Optional[Dict[str, Any]] = Field(None, description="验证规则")
class TaskInputParamsInput(BaseModel):
"""任务输入参数添加/更新模型"""
params: List[TaskInputParamItem] = Field(..., description="输入参数列表")
# 任务实例状态枚举
class TaskInstanceStatus(str, Enum):
"""任务实例状态枚举"""
DRAFT = "draft" # 草稿
PUBLISHED = "published" # 已发布
RUNNING = "running" # 运行中
COMPLETED = "completed" # 已完成
FAILED = "failed" # 失败
CANCELED = "canceled" # 已取消