human.py 725 B

123456789101112131415161718192021222324252627
  1. from typing import TYPE_CHECKING
  2. from core_domain import HumanTaskContract, HumanTaskCreateContract, HumanTaskStatus
  3. from core_shared import JSONValue
  4. from pydantic import BaseModel, Field
  5. if TYPE_CHECKING:
  6. from app.db.models import HumanTask
  7. class HumanTaskCreateRequest(HumanTaskCreateContract):
  8. pass
  9. class HumanTaskClaimRequest(BaseModel):
  10. claimed_by: str
  11. class HumanTaskCompleteRequest(BaseModel):
  12. status: HumanTaskStatus
  13. response_payload_json: dict[str, JSONValue] = Field(default_factory=dict)
  14. class HumanTaskResponse(HumanTaskContract):
  15. @classmethod
  16. def from_entity(cls, entity: "HumanTask") -> "HumanTaskResponse":
  17. return cls.model_validate(entity, from_attributes=True)