summaryrefslogtreecommitdiff
path: root/lib/silmataivas/users/user.ex
diff options
context:
space:
mode:
Diffstat (limited to 'lib/silmataivas/users/user.ex')
-rw-r--r--lib/silmataivas/users/user.ex29
1 files changed, 29 insertions, 0 deletions
diff --git a/lib/silmataivas/users/user.ex b/lib/silmataivas/users/user.ex
new file mode 100644
index 0000000..b0746cd
--- /dev/null
+++ b/lib/silmataivas/users/user.ex
@@ -0,0 +1,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