Add associations between notes and artists/records

This commit is contained in:
Claudio Ortolina
2026-01-11 14:19:06 +00:00
parent 8153eb77ad
commit f6e9415409
3 changed files with 8 additions and 1 deletions
+3
View File
@@ -4,6 +4,7 @@ defmodule MusicLibrary.Artists.ArtistInfo do
import Ecto.Changeset
alias MusicBrainz.ExternalLink
alias MusicLibrary.Notes.Note
@primary_key {:id, :binary_id, autogenerate: true}
schema "artist_infos" do
@@ -11,6 +12,8 @@ defmodule MusicLibrary.Artists.ArtistInfo do
field :discogs_data, :map, default: %{}
field :image_data_hash, :string
has_one :note, Note, foreign_key: :musicbrainz_id
timestamps(type: :utc_datetime)
end
@@ -5,12 +5,15 @@ defmodule MusicLibrary.Records.ArtistRecord do
use Ecto.Schema
alias MusicLibrary.Artists.Artist
alias MusicLibrary.Notes.Note
@primary_key false
schema "artist_records" do
field :musicbrainz_id, Ecto.UUID
field :record_id, Ecto.UUID
has_one :note, Note, foreign_key: :musicbrainz_id, references: :musicbrainz_id
embeds_one :artist, Artist
end
end
+2 -1
View File
@@ -4,7 +4,7 @@ defmodule MusicLibrary.Records.Record do
import Ecto.Changeset
alias MusicBrainz.{Release, ReleaseGroup}
alias MusicLibrary.Artists.Artist
alias MusicLibrary.{Artists.Artist, Notes.Note}
@formats [:cd, :backup, :vinyl, :blu_ray, :dvd, :multi]
@types [:album, :ep, :live, :compilation, :single, :other]
@@ -28,6 +28,7 @@ defmodule MusicLibrary.Records.Record do
field :dominant_colors, {:array, :string}, default: []
embeds_many :artists, Artist, on_replace: :delete
has_one :note, Note, foreign_key: :musicbrainz_id, references: :musicbrainz_id
timestamps(type: :utc_datetime)
end