Packages

SDK for GameServer hooks development. Provides type specs, documentation, and IDE autocomplete for GameServer modules without requiring the full server.

Current section

Files

Jump to
game_server_sdk lib game_server accounts user.ex
Raw

lib/game_server/accounts/user.ex

defmodule GameServer.Accounts.User do
@moduledoc """
User struct from GameServer.
This is a stub module for SDK type definitions. The actual struct
is provided by GameServer at runtime.
## Fields
- `id` - User ID (integer)
- `email` - User email (string)
- `username` - Unique username handle (string)
- `display_name` - Display name (string, optional)
- `profile_url` - Profile URL/avatar (string, optional)
- `metadata` - Arbitrary user metadata (map)
- `is_admin` - Whether the user is an admin (boolean)
- `is_online` - Whether the user is currently online (boolean)
- `last_seen_at` - Last seen timestamp (DateTime, optional)
- `lobby_id` - Current lobby ID (integer, optional)
- `party_id` - Current party ID (integer, optional)
- `inserted_at` - Creation timestamp
- `updated_at` - Last update timestamp
"""
@type t :: %__MODULE__{
id: integer() | nil,
email: String.t() | nil,
username: String.t() | nil,
display_name: String.t() | nil,
profile_url: String.t() | nil,
metadata: map(),
is_admin: boolean(),
is_online: boolean(),
last_seen_at: DateTime.t() | nil,
lobby_id: integer() | nil,
party_id: integer() | nil,
inserted_at: DateTime.t(),
updated_at: DateTime.t()
}
defstruct [
:id,
:email,
:username,
:display_name,
:profile_url,
:metadata,
:is_admin,
:is_online,
:last_seen_at,
:lobby_id,
:party_id,
:inserted_at,
:updated_at
]
@doc """
Builds an email change changeset for a user.
This function exists in the real GameServer implementation.
In the SDK it is provided as a stub so documentation references can resolve.
"""
@spec email_changeset(t(), map(), keyword()) :: no_return()
def email_changeset(_user, _attrs, _opts) do
raise "#{__MODULE__}.email_changeset/3 is a stub - only available at runtime on GameServer"
end
@doc """
Builds a password change changeset for a user.
This function exists in the real GameServer implementation.
In the SDK it is provided as a stub so documentation references can resolve.
"""
@spec password_changeset(t(), map(), keyword()) :: no_return()
def password_changeset(_user, _attrs, _opts) do
raise "#{__MODULE__}.password_changeset/3 is a stub - only available at runtime on GameServer"
end
end