run.py 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. from typing import TYPE_CHECKING
  2. from core_domain import (
  3. InitialNodeContract,
  4. NodeRunContract,
  5. NodeRunStatusUpdateContract,
  6. RunBootstrapContract,
  7. RunCreateContract,
  8. WorkflowRunStatusUpdateContract,
  9. WorkflowRunContract,
  10. )
  11. if TYPE_CHECKING:
  12. from app.db.models import NodeRun, WorkflowRun
  13. class InitialNodeCreateRequest(InitialNodeContract):
  14. pass
  15. class RunCreateRequest(RunCreateContract):
  16. initial_node: InitialNodeCreateRequest | None = None
  17. class WorkflowRunResponse(WorkflowRunContract):
  18. @classmethod
  19. def from_entity(cls, entity: "WorkflowRun") -> "WorkflowRunResponse":
  20. return cls.model_validate(entity, from_attributes=True)
  21. class NodeRunResponse(NodeRunContract):
  22. @classmethod
  23. def from_entity(cls, entity: "NodeRun") -> "NodeRunResponse":
  24. return cls.model_validate(entity, from_attributes=True)
  25. class RunBootstrapResponse(RunBootstrapContract):
  26. run: WorkflowRunResponse
  27. initial_node: NodeRunResponse | None = None
  28. class WorkflowRunStatusUpdateRequest(WorkflowRunStatusUpdateContract):
  29. pass
  30. class NodeRunStatusUpdateRequest(NodeRunStatusUpdateContract):
  31. pass