lib/tai/venue_adapters/stub/stream_supervisor.ex

defmodule Tai.VenueAdapters.Stub.StreamSupervisor do
  use Supervisor

  @spec start_link(Tai.Venues.Stream.t()) :: Supervisor.on_start()
  def start_link(stream) do
    name = process_name(stream.venue.id)
    Supervisor.start_link(__MODULE__, stream, name: name)
  end

  @spec process_name(Tai.Venue.id()) :: atom
  def process_name(venue), do: :"#{__MODULE__}_#{venue}"

  @impl true
  def init(_stream) do
    Supervisor.init([], strategy: :one_for_one)
  end
end