defmodule PlausibleWeb.AuthView do use Plausible use PlausibleWeb, :view alias Plausible.Billing.Plans def subscription_quota(subscription, options \\ []) def subscription_quota(nil, _options), do: "Free trial" def subscription_quota(subscription, options) do pageview_limit = Plausible.Teams.Billing.monthly_pageview_limit(subscription) quota = if pageview_limit == :unlimited do "unlimited" else PlausibleWeb.StatsView.large_number_format(pageview_limit) end if Keyword.get(options, :format) == :long do "#{quota} pageviews" else quota end end def subscription_interval(subscription) do Plans.subscription_interval(subscription) end def delimit_integer(number) do Integer.to_charlist(number) |> :lists.reverse() |> delimit_integer([]) |> String.Chars.to_string() end defp delimit_integer([a, b, c, d | tail], acc) do delimit_integer([d | tail], [",", c, b, a | acc]) end defp delimit_integer(list, acc) do :lists.reverse(list) ++ acc end end