defmodule Mobilizon.Users.Setting.Location do @moduledoc """ Represents user location information """ use Ecto.Schema import Ecto.Changeset @type t :: %__MODULE__{ name: String.t(), range: non_neg_integer(), geohash: String.t() } @required_attrs [] @optional_attrs [ :name, :range, :geohash ] @attrs @required_attrs ++ @optional_attrs @primary_key false embedded_schema do field(:name, :string) field(:range, :integer) field(:geohash, :string) end @doc false @spec changeset(t | Ecto.Schema.t(), map) :: Ecto.Changeset.t() def changeset(schema, params) do schema |> cast(params, @attrs) end end