<?php
declare(strict_types=1);
namespace App\Controller\Frontend\Committee;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\RedirectResponse;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Annotation\Route;
use Symfony\Component\Routing\Generator\UrlGeneratorInterface;
final class CommitteeController
{
public function __construct(
private readonly CommitteeCompetitionsView $committeeCompetitionsView,
private readonly UrlGeneratorInterface $urlGenerator
) {
}
/**
* Compatibility for the two club codes previously handled as committees.
*
* @Route(
* "/competiciones-comite/{clubId}",
* name="competiciones_comite_legacy_club",
* requirements={"clubId"="AM00|CM00"}
* )
*/
public function legacyClub(string $clubId): RedirectResponse
{
return new RedirectResponse($this->urlGenerator->generate('competiciones_club', [
'id' => $clubId,
]));
}
/**
* F-016 Visualización de las competiciones de un comité.
*
* @Route(
* "/competiciones-comite/{committeeId}",
* name="competiciones_comite",
* requirements={"committeeId"="\d+"}
* )
*/
public function competitions(Request $request, string $committeeId): Response
{
return ($this->committeeCompetitionsView)($committeeId, $request);
}
/**
* @Route("/competiciones-comite", name="competiciones_comite_legacy")
*/
public function legacyList(): RedirectResponse
{
return new RedirectResponse($this->urlGenerator->generate('competitions'));
}
}