Read-side serialization and hydration helpers for workflow runs.
SquidMesh.RunStore remains the public boundary. This module keeps the
translation between persistence records and public structs in one place so
command code can stay focused on lifecycle transitions.
Summary
Types
@type list_filter() :: {:workflow, module()} | {:status, SquidMesh.Run.status()} | {:limit, pos_integer()}
@type list_filters() :: [list_filter()]
Functions
@spec deserialize_run_error(SquidMesh.Workflow.Definition.t() | nil, map() | nil) :: map() | nil
@spec deserialize_status(String.t()) :: SquidMesh.Run.status()
@spec deserialize_step(SquidMesh.Workflow.Definition.t() | nil, String.t() | nil) :: atom() | String.t() | nil
@spec deserialize_workflow(String.t()) :: {module() | String.t(), SquidMesh.Workflow.Definition.t() | nil}
@spec maybe_preload_history(Ecto.Queryable.t(), boolean()) :: Ecto.Query.t()
@spec serialize_filters(list_filters()) :: keyword()
@spec serialize_status(SquidMesh.Run.status()) :: String.t()
@spec to_public_run(SquidMesh.Persistence.Run.t()) :: SquidMesh.Run.t()