Soundboard.Stats (soundboard v1.7.0)
Handles the stats of the soundboard.
Summary
Types
@type leaderboard_entry() :: {String.t(), non_neg_integer()}
@type recent_play_entry() :: {integer(), String.t(), String.t(), NaiveDateTime.t()}
Functions
@spec broadcast_stats_update() :: :ok | {:error, term()}
@spec get_recent_plays(keyword()) :: [recent_play_entry()]
@spec get_top_sounds(Date.t(), Date.t(), keyword()) :: [leaderboard_entry()]
@spec get_top_users(Date.t(), Date.t(), keyword()) :: [leaderboard_entry()]
@spec reset_weekly_stats() :: :ok | {:error, term()}
@spec track_play(String.t(), integer() | nil) :: {:ok, Soundboard.Stats.Play.t()} | {:error, Ecto.Changeset.t()}