Add associations between notes and artists/records
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user