diff --git a/lib/last_fm/album.ex b/lib/last_fm/album.ex index a7ed33e7..fb2964ae 100644 --- a/lib/last_fm/album.ex +++ b/lib/last_fm/album.ex @@ -1,4 +1,5 @@ defmodule LastFm.Album do + @enforce_keys [:musicbrainz_id, :title] defstruct [:musicbrainz_id, :title] @type t :: %__MODULE__{ diff --git a/lib/last_fm/artist.ex b/lib/last_fm/artist.ex index 2f815209..5b0f036b 100644 --- a/lib/last_fm/artist.ex +++ b/lib/last_fm/artist.ex @@ -1,4 +1,5 @@ defmodule LastFm.Artist do + @enforce_keys [:musicbrainz_id, :name] defstruct [:musicbrainz_id, :name, :bio, :image, :play_count] @type t :: %__MODULE__{ diff --git a/lib/last_fm/config.ex b/lib/last_fm/config.ex index 5b2df3a9..1472ee8f 100644 --- a/lib/last_fm/config.ex +++ b/lib/last_fm/config.ex @@ -8,6 +8,7 @@ defmodule LastFm.Config do user_agent: String.t() } + @enforce_keys [:api, :api_key, :user] defstruct api: LastFm.Api, api_key: "", user: "", diff --git a/lib/last_fm/track.ex b/lib/last_fm/track.ex index f055bf39..20cf3df3 100644 --- a/lib/last_fm/track.ex +++ b/lib/last_fm/track.ex @@ -7,6 +7,15 @@ defmodule LastFm.Track do alias LastFm.{Album, Artist} + @enforce_keys [ + :musicbrainz_id, + :title, + :artist, + :album, + :cover_url, + :scrobbled_at_uts, + :scrobbled_at_label + ] defstruct [ :musicbrainz_id, :title, diff --git a/lib/music_brainz/config.ex b/lib/music_brainz/config.ex index d6b64bb4..4ba13487 100644 --- a/lib/music_brainz/config.ex +++ b/lib/music_brainz/config.ex @@ -4,6 +4,7 @@ defmodule MusicBrainz.Config do user_agent: String.t() } + @enforce_keys [:api, :user_agent] defstruct api: MusicBrainz.APIImpl, user_agent: "change me" diff --git a/lib/music_brainz/release_group.ex b/lib/music_brainz/release_group.ex index 5ae0dbcd..0b69cde9 100644 --- a/lib/music_brainz/release_group.ex +++ b/lib/music_brainz/release_group.ex @@ -1,4 +1,5 @@ defmodule MusicBrainz.ReleaseGroup do + @enforce_keys [:id, :type, :title, :artists, :release] defstruct [:id, :type, :title, :artists, :release] def from_api_response(rg) do diff --git a/lib/obsidian/entry.ex b/lib/obsidian/entry.ex index 9f2e93a2..e563390e 100644 --- a/lib/obsidian/entry.ex +++ b/lib/obsidian/entry.ex @@ -1,3 +1,4 @@ defmodule Obsidian.Entry do + @enforce_keys [:type, :musicbrainz_id, :title, :release, :cover_url, :genres] defstruct [:type, :musicbrainz_id, :title, :release, :cover_url, :genres] end diff --git a/lib/open_ai/completion.ex b/lib/open_ai/completion.ex index 3577957e..842e7795 100644 --- a/lib/open_ai/completion.ex +++ b/lib/open_ai/completion.ex @@ -1,4 +1,5 @@ defmodule OpenAI.Completion do + @enforce_keys [:content] defstruct content: "", temperature: 0.2, role: "user",