diff --git a/lib/type_id/ecto.ex b/lib/type_id/ecto.ex index c7d6fc9..4483950 100644 --- a/lib/type_id/ecto.ex +++ b/lib/type_id/ecto.ex @@ -9,7 +9,7 @@ if Code.ensure_loaded?(Ecto.ParameterizedType) do @doc false @impl true - def type(%{type: type}), do: type + def type(%{column_type: column_type}), do: column_type @doc false @impl true @@ -49,10 +49,10 @@ if Code.ensure_loaded?(Ecto.ParameterizedType) do @impl true def dump(nil, _dumper, _params), do: {:ok, nil} - def dump(%TypeID{} = tid, _, %{type: type} = params) do + def dump(%TypeID{} = tid, _, %{column_type: column_type} = params) do prefix = find_prefix(params) - case {tid.prefix, type} do + case {tid.prefix, column_type} do {^prefix, :string} -> {:ok, TypeID.to_string(tid)} {^prefix, :uuid} -> {:ok, TypeID.uuid_bytes(tid)} _ -> :error @@ -73,7 +73,7 @@ if Code.ensure_loaded?(Ecto.ParameterizedType) do @impl true def load(nil, _, _), do: {:ok, nil} - def load(str, _, %{type: :string} = params) do + def load(str, _, %{column_type: :string} = params) do prefix = find_prefix(params) with {:ok, %TypeID{prefix: ^prefix}} = loaded <- TypeID.from_string(str) do @@ -81,12 +81,12 @@ if Code.ensure_loaded?(Ecto.ParameterizedType) do end end - def load(<<_::128>> = uuid, _, %{type: :uuid} = params) do + def load(<<_::128>> = uuid, _, %{column_type: :uuid} = params) do prefix = find_prefix(params) TypeID.from_uuid_bytes(prefix, uuid) end - def load(<<_::288>> = uuid, _, %{type: :uuid} = params) do + def load(<<_::288>> = uuid, _, %{column_type: :uuid} = params) do prefix = find_prefix(params) TypeID.from_uuid(prefix, uuid) rescue @@ -99,22 +99,28 @@ if Code.ensure_loaded?(Ecto.ParameterizedType) do primary_key = Keyword.get(opts, :primary_key, false) schema = Keyword.fetch!(opts, :schema) field = Keyword.fetch!(opts, :field) - default_type = Application.get_env(:typeid_elixir, :default_type, :string) - type = Keyword.get(opts, :type, default_type) + default_column_type = Application.get_env(:typeid_elixir, :default_column_type, :string) + column_type = Keyword.get(opts, :column_type, default_column_type) prefix = Keyword.get(opts, :prefix) if primary_key do TypeID.validate_prefix!(prefix) end - unless type in ~w[string uuid]a do - raise ArgumentError, "`type` must be `:string` or `:uuid`" + unless column_type in ~w[string uuid]a do + raise ArgumentError, "`column_type` must be `:string` or `:uuid`" end if primary_key do - %{primary_key: primary_key, schema: schema, field: field, prefix: prefix, type: type} + %{ + primary_key: primary_key, + schema: schema, + field: field, + prefix: prefix, + column_type: column_type + } else - %{schema: schema, field: field, type: type} + %{schema: schema, field: field, column_type: column_type} end end