Packages
journey
0.10.44
0.10.58
0.10.57
0.10.56
0.10.55
0.10.54
0.10.53
0.10.52
0.10.51
0.10.50
0.10.49
0.10.48
0.10.47
0.10.46
0.10.45
0.10.44
0.10.43
0.10.41
0.10.40
0.10.39
0.10.38
0.10.37
0.10.36
0.10.35
0.10.34
0.10.33
0.10.32
0.10.31
0.10.30
0.10.29
0.10.28
0.10.27
0.10.26
0.10.25
0.10.24
0.10.23
0.10.22
0.0.9
retired
0.0.8
0.0.7
0.0.6
0.0.5
0.0.3
0.0.2
Journey is a library for defining and running durable workflows with persistence, reliability, and scalability.
Current section
Files
Jump to
Current section
Files
lib/journey/persistence/schema/execution/value.ex
defmodule Journey.Persistence.Schema.Execution.Value.JsonbScalar do
@moduledoc false
@behaviour Ecto.Type
def type, do: :map
def cast(val), do: {:ok, val}
def load(val), do: {:ok, val}
def dump(val), do: {:ok, val}
def embed_as(_format), do: :self
def equal?(term1, term2), do: term1 == term2
end
defmodule Journey.Persistence.Schema.Execution.Value do
@moduledoc false
use Journey.Persistence.Schema.Base
alias Journey.Persistence.Schema.Execution.ComputationType
@primary_key {:id, :string, autogenerate: {Journey.Helpers.Random, :object_id, ["VAL"]}}
schema "values" do
belongs_to(:execution, Journey.Persistence.Schema.Execution)
field(:node_name, :string)
field(:node_type, Ecto.Enum, values: [:input | ComputationType.values()])
field(:node_value, Journey.Persistence.Schema.Execution.Value.JsonbScalar, default: nil)
field(:metadata, Journey.Persistence.Schema.Execution.Value.JsonbScalar, default: nil)
field(:set_time, :integer, default: nil)
field(:ex_revision, :integer, default: nil)
timestamps()
end
end