from core.schema import WorkflowSchema, NodeConfig
from core.workflow import Workflow
from schemas.example_schema import ExampleEventSchema
from workflows.example_workflow_nodes.initial_node import InitialNode
from workflows.example_workflow_nodes.process_node import ProcessNode
from workflows.example_workflow_nodes.router_node import ExampleRouter
from workflows.example_workflow_nodes.success_node import SuccessNode
from workflows.example_workflow_nodes.error_node import ErrorNode
class ExampleWorkflow(Workflow):
workflow_schema = WorkflowSchema(
description="Example workflow for processing data",
event_schema=ExampleEventSchema,
start=InitialNode,
nodes=[
NodeConfig(
node=InitialNode,
connections=[ProcessNode],
description="Initial processing of the event",
),
NodeConfig(
node=ProcessNode,
connections=[ExampleRouter],
description="Process the data",
),
NodeConfig(
node=ExampleRouter,
connections=[SuccessNode, ErrorNode],
is_router=True,
description="Route based on processing results",
),
NodeConfig(
node=SuccessNode,
connections=[],
description="Handle successful processing",
),
NodeConfig(
node=ErrorNode,
connections=[],
description="Handle processing errors",
),
],
)