Files
Escapepage/src/Game/Service/PlayerService.php
2026-01-05 15:27:37 +01:00

36 lines
881 B
PHP

<?php
namespace App\Game\Service;
use App\Game\Entity\Game;
use App\Game\Entity\Player;
use App\Game\Enum\SessionStatus;
use App\Game\Repository\PlayerRepository;
use App\Tech\Entity\User;
class PlayerService
{
public function __construct(
private PlayerRepository $playerRepository,
) {
}
public function GetCurrentlyActiveAsPlayer(User $user): ?Player
{
$player = $this->playerRepository->createQueryBuilder('p')
->join('p.session', 's')
->where('p.user = :user')
->andWhere('s.status IN (:statuses)')
->setParameter('user', $user)
->setParameter('statuses', [
SessionStatus::READY,
SessionStatus::PLAYING,
])
->setMaxResults(1)
->getQuery()
->getOneOrNullResult();
return $player;
}
}