blob: b0746cd12fb0ee29ddaea715b03b27298df756d1 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
|
defmodule Silmataivas.Users.User do
use Ecto.Schema
import Ecto.Changeset
alias Silmataivas.Repo
@roles ["user", "admin"]
schema "users" do
field :user_id, :string
field :role, :string, default: "user"
has_one :location, Silmataivas.Locations.Location
timestamps(type: :utc_datetime)
end
@doc false
def changeset(user, attrs) do
user
|> cast(attrs, [:user_id, :role])
|> validate_required([:user_id])
|> validate_inclusion(:role, @roles)
|> unique_constraint(:user_id)
end
def create_user(attrs \\ %{}) do
%__MODULE__{}
|> changeset(attrs)
|> Repo.insert()
end
end
|