defmodule SsoBsn.Accounts.UserKey do use Ecto.Schema import Ecto.Changeset alias SsoBsn.Accounts.User defmodule BinaryTerm do use Ecto.Type def type, do: :binary def cast(term), do: {:ok, term} def load(data) when is_binary(data), do: {:ok, :erlang.binary_to_term(data)} def dump(term), do: {:ok, :erlang.term_to_binary(term)} |> dbg() end alias SsoBsn.Accounts.UserKey.BinaryTerm schema "users_keys" do field :key_id, :string field :cose_key, BinaryTerm belongs_to :user, User end def new(key, attrs) do key |> cast(attrs, [:key_id, :cose_key]) end end