Files
2026-05-09 17:32:17 +02:00

35 lines
852 B
PHP
Executable File

<?php
namespace App\Services\User;
use App\Models\User;
use Illuminate\Database\Eloquent\Builder;
readonly class UserApiService
{
public function fetchUser(string $username, array $columns): ?User
{
/** @var User|null $user */
$user = User::select($columns)->where('username', '=', $username)->first();
return $user;
}
public function onlineUsers($columns = ['username', 'motto', 'look'], bool $randomOrder = true): Builder|\Illuminate\Database\Query\Builder
{
/** @var Builder $query */
$query = User::select($columns)->where('online', '=', '1');
if ($randomOrder) {
$query = $query->inRandomOrder();
}
return $query;
}
public function onlineUserCount(): int
{
return User::query()->where('online', '=', '1')->count();
}
}