src/Service/SeasonService.php line 28
<?phpnamespace App\Service;use App\Entity\Season;use App\Repository\SeasonRepository;use Symfony\Component\HttpFoundation\RequestStack;class SeasonService{private const SESSION_KEY = 'selected_season_id';public function __construct(private SeasonRepository $seasonRepository,private RequestStack $requestStack) {}/*** Vrátí aktuálně vybranou sezónu ze session, nebo aktivní sezónu (isCurrent = true)*/public function getSelectedSeason(): ?Season{// V CLI kontextu (např. watchdog command) není request ani session dostupná$request = $this->requestStack->getMainRequest();if ($request && $request->hasSession()) {$session = $request->getSession();$selectedSeasonId = $session->get(self::SESSION_KEY);if ($selectedSeasonId) {$season = $this->seasonRepository->find($selectedSeasonId);if ($season instanceof Season) {return $season;}}}// Pokud není v session nebo session není dostupná, vrátíme aktivní sezónureturn $this->seasonRepository->findOneBy(['isCurrent' => true]);}/*** Uloží vybranou sezónu do session*/public function setSelectedSeason(int $seasonId): void{// V CLI kontextu (např. watchdog command) není request ani session dostupná$request = $this->requestStack->getMainRequest();if ($request && $request->hasSession()) {$session = $request->getSession();$session->set(self::SESSION_KEY, $seasonId);}}/*** Vrátí všechny sezóny seřazené podle roku (nejnovější první)*/public function getAllSeasons(): array{return $this->seasonRepository->findBy([], ['year' => 'DESC']);}}