Powered by AppSignal & Oban Pro
Would you like to see your link here? Contact us

Metrics Restrictions Plans Differences

metric_restrictions_plans_differences.livemd

Metrics Restrictions Plans Differences

Section

metrics = Sanbase.Metric.available_metrics()
metadatas =
  Map.new(metrics, fn m ->
    {:ok, metadata} = Sanbase.Metric.metadata(m)

    {m, metadata}
  end)
metadatas["miners_balance"]
min_plans =
  Sanbase.Metric.min_plan_map()
  |> Enum.map(fn
    {m, "FREE"} -> {m, %{"SANAPI" => "FREE", "SANBASE" => "FREE"}}
    x -> x
  end)

metrics_min_plan_pro =
  Enum.filter(min_plans, fn {_m, a} -> a["SANAPI"] == "PRO" end) |> Enum.map(&elem(&1, 0))

metrics_min_plan_free =
  Enum.filter(min_plans, fn {_m, a} -> a["SANAPI"] == "FREE" end) |> Enum.map(&elem(&1, 0))

Enum.each(metrics_min_plan_pro, &IO.puts/1)
free_access_metrics = Sanbase.Metric.free_metrics()
Enum.each(free_access_metrics, &IO.puts/1)
# The different types of min plan combinations
Sanbase.Metric.min_plan_map() |> Map.values() |> Enum.uniq()
access_free_min_plan_free =
  MapSet.intersection(
    MapSet.new(free_access_metrics),
    MapSet.new(metrics_min_plan_free)
  )
  |> Enum.to_list()

Enum.each(access_free_min_plan_free, &IO.puts/1)
access_free_min_plan_free =
  MapSet.intersection(
    MapSet.new(free_access_metrics),
    MapSet.new(metrics_min_plan_pro)
  )
  |> Enum.to_list()

Enum.each(access_free_min_plan_free, &IO.puts/1)