run.py 943 B

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