feat: stabilize workflow phase 1 foundation

This commit is contained in:
2026-04-07 08:48:48 +02:00
parent bc9ab5f864
commit 63e35ce807
8 changed files with 742 additions and 128 deletions
@@ -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