lib/runbox/scenario/start_params.ex

defmodule Runbox.Scenario.StartParams do
  @moduledoc """
  Struct containing all neccessary parameters to start scenario.
  """

  alias __MODULE__
  alias Runbox.Scenario.InputTopic
  alias Runbox.Scenario.Type

  @type t :: %StartParams{
          run_id: String.t(),
          start_from: non_neg_integer(),
          scenario_id: String.t(),
          scenario_type: Type.t(),
          input_topics: %{String.t() => InputTopic.t()},
          side_effects?: boolean(),
          output_actions_from: non_neg_integer(),
          notifications_from: non_neg_integer()
        }

  defstruct [
    :run_id,
    :start_from,
    :scenario_id,
    :scenario_type,
    :input_topics,
    :side_effects?,
    :output_actions_from,
    :notifications_from
  ]
end