From 963b3c826f01e3b39f02c296b255d3d21b6f2ec8 Mon Sep 17 00:00:00 2001 From: Claudio Ortolina Date: Mon, 2 Dec 2024 10:54:22 +0000 Subject: [PATCH] Extract Records.Artist --- lib/music_library/records/artist.ex | 10 ++++++++++ lib/music_library/records/record.ex | 8 +++----- .../live/collection_live/index_test.exs | 2 +- 3 files changed, 14 insertions(+), 6 deletions(-) create mode 100644 lib/music_library/records/artist.ex 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",