diff --git a/lib/memex/contexts/context_note.ex b/lib/memex/contexts/context_note.ex new file mode 100644 index 0000000..2c3e791 --- /dev/null +++ b/lib/memex/contexts/context_note.ex @@ -0,0 +1,21 @@ +defmodule Memex.Contexts.ContextNote do + use Ecto.Schema + import Ecto.Changeset + + @primary_key {:id, :binary_id, autogenerate: true} + @foreign_key_type :binary_id + schema "context_notes" do + + field :context_id, :binary_id + field :note_id, :binary_id + + timestamps() + end + + @doc false + def changeset(context_note, attrs) do + context_note + |> cast(attrs, []) + |> validate_required([]) + end +end diff --git a/priv/repo/migrations/20220726002129_create_context_notes.exs b/priv/repo/migrations/20220726002129_create_context_notes.exs new file mode 100644 index 0000000..6e7ff38 --- /dev/null +++ b/priv/repo/migrations/20220726002129_create_context_notes.exs @@ -0,0 +1,16 @@ +defmodule Memex.Repo.Migrations.CreateContextNotes do + use Ecto.Migration + + def change do + create table(:context_notes, primary_key: false) do + add :id, :binary_id, primary_key: true + add :context_id, references(:contexts, on_delete: :nothing, type: :binary_id) + add :note_id, references(:notes, on_delete: :nothing, type: :binary_id) + + timestamps() + end + + create index(:context_notes, [:context_id]) + create index(:context_notes, [:note_id]) + end +end