human.py 764 B

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