defmodule Oban.Console.Config do @spec oban_configured?() :: :ok | {:error, String.t()} def oban_configured? do with {_, true} <- {:installed, Code.ensure_loaded?(Oban)}, {_, %Oban.Config{queues: [_ | _]}} <- {:configured, Oban.config()} do :ok else {:installed, false} -> {:error, "Oban is not installed"} {:configured, %Oban.Config{queues: []}} -> {:error, "Oban is installed but no queues are configured"} {:configured, _} -> {:error, "Oban isn't configured"} end end end