52 lines
1.3 KiB
Python
52 lines
1.3 KiB
Python
from __future__ import annotations
|
|
|
|
from datetime import datetime
|
|
|
|
from pydantic import BaseModel, ConfigDict, Field
|
|
|
|
|
|
class TaskCreate(BaseModel):
|
|
name: str = Field(min_length=1, max_length=128)
|
|
skill_id: int
|
|
product_id: int | None = None
|
|
input_data: dict = Field(default_factory=dict)
|
|
timeout_seconds: int = Field(default=60, ge=1, le=3600)
|
|
|
|
|
|
class TaskRead(BaseModel):
|
|
model_config = ConfigDict(from_attributes=True)
|
|
|
|
id: int
|
|
task_no: str
|
|
name: str
|
|
skill_id: int
|
|
skill_code: str
|
|
skill_name: str | None = None
|
|
product_id: int | None = None
|
|
product_name: str | None = None
|
|
executor_type: str
|
|
status: str
|
|
error_message: str | None = None
|
|
external_ref: str | None = None
|
|
source: str
|
|
operator_id: int | None = None
|
|
operator_name: str | None = None
|
|
input_data: dict | None = None
|
|
resolved_input: dict | None = None
|
|
result_data: dict | None = None
|
|
started_at: datetime | None = None
|
|
finished_at: datetime | None = None
|
|
cost_ms: int = 0
|
|
timeout_seconds: int = 60
|
|
created_at: datetime | None = None
|
|
|
|
|
|
class TaskLogRead(BaseModel):
|
|
model_config = ConfigDict(from_attributes=True)
|
|
|
|
id: int
|
|
task_id: int
|
|
level: str
|
|
message: str
|
|
created_at: datetime | None = None
|