*/ public static function listItem(Player $player): array { $wallets = $player->relationLoaded('wallets') ? $player->wallets : $player->wallets()->get(); $walletRows = $wallets->map(static fn (PlayerWallet $w): array => [ 'wallet_type' => $w->wallet_type, 'currency_code' => $w->currency_code, 'balance' => (int) $w->balance, 'frozen_balance' => (int) $w->frozen_balance, 'available_balance' => max(0, (int) $w->balance - (int) $w->frozen_balance), 'status' => (int) $w->status, ])->values()->all(); $agent = $player->relationLoaded('agentNode') ? $player->agentNode : ($player->agent_node_id ? $player->agentNode()->first() : null); return [ 'id' => (int) $player->id, ...AgentNodeApiPresenter::embed($agent), 'site_code' => $player->site_code, 'site_player_id' => $player->site_player_id, 'username' => $player->username, 'nickname' => $player->nickname, 'default_currency' => $player->default_currency, 'status' => (int) $player->status, 'last_login_at' => $player->last_login_at?->toIso8601String(), 'created_at' => $player->created_at?->toIso8601String(), 'wallets' => $walletRows, ]; } }