lib/eventize/event_sourced_process/state.ex

defmodule Eventize.EventSourcedProcessState do
  @moduledoc """
  A struct representing the state of a `Eventize.EventSourcedProcess`.
  """

  @type t :: %__MODULE__{
          behavior: atom(),
          state: term(),
          event_bus: Eventize.Persistence.EventStore.event_bus(),
          id: String.t(),
          version: :empty | non_neg_integer(),
          stream_name: String.t(),
          process: atom(),
          start_from: :start | non_neg_integer()
        }

  defstruct [
    :behavior,
    :state,
    :event_bus,
    :id,
    :version,
    :stream_name,
    :process,
    start_from: :start
  ]
end