mirror of
https://github.com/ClaperCo/Claper.git
synced 2026-02-24 12:09:59 +01:00
44 lines
975 B
Elixir
44 lines
975 B
Elixir
defmodule Lti13.Users.User do
|
|
use Ecto.Schema
|
|
import Ecto.Changeset
|
|
|
|
@type t :: %__MODULE__{
|
|
id: integer(),
|
|
sub: String.t(),
|
|
name: String.t() | nil,
|
|
email: String.t(),
|
|
roles: [String.t()],
|
|
user_id: integer(),
|
|
registration_id: integer(),
|
|
inserted_at: NaiveDateTime.t(),
|
|
updated_at: NaiveDateTime.t()
|
|
}
|
|
|
|
schema "lti_13_users" do
|
|
field :sub, :string
|
|
field :name, :string
|
|
field :email, :string
|
|
field :roles, {:array, :string}
|
|
|
|
belongs_to :user, Claper.Accounts.User
|
|
belongs_to :registration, Lti13.Registrations.Registration
|
|
|
|
timestamps()
|
|
end
|
|
|
|
@doc false
|
|
def changeset(user, attrs) do
|
|
user
|
|
|> cast(attrs, [
|
|
:sub,
|
|
:name,
|
|
:roles,
|
|
:email,
|
|
:user_id,
|
|
:registration_id
|
|
])
|
|
|> validate_required([:sub, :name, :email, :roles, :user_id, :registration_id])
|
|
|> unique_constraint(:sub)
|
|
end
|
|
end
|