debianize-mobilizon/lib/mobilizon/users/setting/location.ex

39 lines
706 B
Elixir
Raw Normal View History

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