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