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)
- `display_name` - Display name (string, optional)
- `metadata` - Arbitrary user metadata (map)
- `is_admin` - Whether the user is an admin (boolean)
- `inserted_at` - Creation timestamp
- `updated_at` - Last update timestamp
"""
@type t :: %__MODULE__{
id: integer(),
email: String.t(),
display_name: String.t() | nil,
metadata: map(),
is_admin: boolean(),
inserted_at: DateTime.t(),
updated_at: DateTime.t()
}
defstruct [:id, :email, :display_name, :metadata, :is_admin, :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