feat: stabilize workflow phase 1 foundation
This commit is contained in:
@@ -21,10 +21,22 @@ from pydantic import BaseModel, Field, field_validator, model_validator
|
||||
from app.core.process_steps import StepName
|
||||
|
||||
|
||||
class WorkflowPosition(BaseModel):
|
||||
x: float
|
||||
y: float
|
||||
|
||||
|
||||
class WorkflowNodeUI(BaseModel):
|
||||
type: str | None = None
|
||||
position: WorkflowPosition | None = None
|
||||
label: str | None = None
|
||||
|
||||
|
||||
class WorkflowNode(BaseModel):
|
||||
id: str
|
||||
step: StepName # validated against the StepName StrEnum
|
||||
params: dict = {}
|
||||
ui: WorkflowNodeUI | None = None
|
||||
|
||||
|
||||
class WorkflowEdge(BaseModel):
|
||||
@@ -35,10 +47,15 @@ class WorkflowEdge(BaseModel):
|
||||
model_config = {"populate_by_name": True}
|
||||
|
||||
|
||||
class WorkflowUI(BaseModel):
|
||||
preset: str | None = None
|
||||
|
||||
|
||||
class WorkflowConfig(BaseModel):
|
||||
version: int = 1
|
||||
nodes: list[WorkflowNode]
|
||||
edges: list[WorkflowEdge] = []
|
||||
ui: WorkflowUI | None = None
|
||||
|
||||
@field_validator("nodes")
|
||||
@classmethod
|
||||
|
||||
Reference in New Issue
Block a user