| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546 |
- from typing import TYPE_CHECKING
- from core_domain import HumanTaskContract, HumanTaskCreateContract, HumanTaskStatus
- from core_shared import JSONValue
- from pydantic import BaseModel, Field
- if TYPE_CHECKING:
- from app.db.models import HumanTask
- class HumanTaskCreateRequest(HumanTaskCreateContract):
- pass
- class HumanTaskListRequest(BaseModel):
- status: HumanTaskStatus | None = None
- assigned_to: str | None = None
- run_id: str | None = None
- limit: int = Field(default=100, ge=1, le=500)
- class HumanTaskDetailRequest(BaseModel):
- human_task_id: str
- class HumanTaskClaimRequest(BaseModel):
- claimed_by: str
- class HumanTaskClaimPostRequest(HumanTaskClaimRequest):
- human_task_id: str
- class HumanTaskCompleteRequest(BaseModel):
- status: HumanTaskStatus
- response_payload_json: dict[str, JSONValue] = Field(default_factory=dict)
- class HumanTaskCompletePostRequest(HumanTaskCompleteRequest):
- human_task_id: str
- class HumanTaskResponse(HumanTaskContract):
- @classmethod
- def from_entity(cls, entity: "HumanTask") -> "HumanTaskResponse":
- return cls.model_validate(entity, from_attributes=True)
|