# `GameServer.Push.PushToken`
[🔗](https://github.com/appsinacup/game_server/blob/v1.0.26/lib/game_server/push/push_token.ex#L1)

Registered device push token struct from GameServer.

This is a stub module for SDK type definitions. The actual struct
is provided by GameServer at runtime.

## Fields

- `id` - Token row ID (UUID string)
- `user_id` - Owner (UUID string)
- `token` - The FCM registration token or APNs device token
- `platform` - `"android" | "ios" | "web"`
- `provider` - `"fcm" | "apns"` — selects the delivery backend per token
- `device_id` - Optional stable device key (re-registration rotates in place)
- `disabled_at` - Set when the provider reported the token dead (DateTime or nil)
- `last_used_at` - Last successful delivery (DateTime or nil)
- `metadata` - Optional client info (map)
- `inserted_at` - Creation timestamp
- `updated_at` - Last update timestamp

# `t`

```elixir
@type t() :: %GameServer.Push.PushToken{
  device_id: String.t() | nil,
  disabled_at: DateTime.t() | nil,
  id: String.t(),
  inserted_at: DateTime.t(),
  last_used_at: DateTime.t() | nil,
  metadata: map(),
  platform: String.t(),
  provider: String.t(),
  token: String.t(),
  updated_at: DateTime.t(),
  user_id: String.t()
}
```

---

*Consult [api-reference.md](api-reference.md) for complete listing*
