<?php
declare(strict_types=1);
namespace App\Controller\Frontend;
use App\Entity\Backend\ExternalCompetition;
use App\Entity\Backend\ExternalCompetitionPlayer;
use App\Entity\Gestion\Ranking;
use Doctrine\ORM\EntityManagerInterface;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\RedirectResponse;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Annotation\Route;
/**
* @Route("/tour-external")
*/
final class ExternalTournamentController extends AbstractController
{
public function __construct(
private readonly EntityManagerInterface $em
)
{
}
/**
* @Route("/{id}/{publi}", name="_external_tournament", requirements={"id": "\d+"}, options={"expose"=true}, defaults={"publi" = 0})
*/
public function tournament(int $id, int $publi): RedirectResponse|Response
{
$externalCompetition = $this->em->getRepository(ExternalCompetition::class)->findOneBy([
'id' => $id,
'deleted_at' => null,
]);
if (!$externalCompetition) {
$this->addFlash('error', 'El torneo buscado no existe');
return $this->redirect($this->generateUrl('portada'));
}
$players = $this->em->getRepository(ExternalCompetitionPlayer::class)->resultsByExternalCompetitionForFrontend($id);
$rankings = $this->em->getRepository(Ranking::class)->getRankingsByExternalCompetition($id);
$menu = [];
$order = '';
if (count($players) > 0) {
$menu = [
'inscritos' => [
'name' => 'user',
'clase' => 'user',
'posN' => 1,
'posL' => 3,
],
];
$order = 'inscritos';
}
return $this->render('frontend/Competicion/external-competition.html.twig', [
'competition' => $externalCompetition,
'players' => $players,
'rankings' => $rankings,
'menu' => $menu,
'orden' => $order,
'publi' => $publi,
]);
}
}