diff --git a/lib/music_library/records/artist.ex b/lib/music_library/records/artist.ex new file mode 100644 index 00000000..6fe64c9b --- /dev/null +++ b/lib/music_library/records/artist.ex @@ -0,0 +1,10 @@ +defmodule MusicLibrary.Records.Artist do + use Ecto.Schema + + @primary_key {:musicbrainz_id, :binary_id, autogenerate: false} + embedded_schema do + field :name, :string + field :sort_name, :string + field :disambiguation, :string + end +end diff --git a/lib/music_library/records/record.ex b/lib/music_library/records/record.ex index 96c2913b..c8410c9f 100644 --- a/lib/music_library/records/record.ex +++ b/lib/music_library/records/record.ex @@ -2,6 +2,8 @@ defmodule MusicLibrary.Records.Record do use Ecto.Schema import Ecto.Changeset + alias MusicLibrary.Records.Artist + @formats [:cd, :vinyl, :blu_ray, :dvd, :multi] @types [:album, :ep, :live, :compilation, :single, :other] @@ -22,11 +24,7 @@ defmodule MusicLibrary.Records.Record do field :release_ids, {:array, :string}, default: [] field :included_release_group_ids, {:array, :string}, default: [] - embeds_many :artists, Artist, primary_key: {:musicbrainz_id, :binary_id, autogenerate: false} do - field :name, :string - field :sort_name, :string - field :disambiguation, :string - end + embeds_many :artists, Artist timestamps(type: :utc_datetime) end diff --git a/test/music_library_web/live/collection_live/index_test.exs b/test/music_library_web/live/collection_live/index_test.exs index 0eaa2d4b..dbe69e8c 100644 --- a/test/music_library_web/live/collection_live/index_test.exs +++ b/test/music_library_web/live/collection_live/index_test.exs @@ -342,7 +342,7 @@ defmodule MusicLibraryWeb.CollectionLive.IndexTest do [marillion] = record.artists - assert %MusicLibrary.Records.Record.Artist{ + assert %MusicLibrary.Records.Artist{ name: "Marillion", sort_name: "Marillion", disambiguation: "British progressive rock band",