39 lines
706 B
Elixir
39 lines
706 B
Elixir
|
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
|