src/Service/Management/Office/OfficeSelectionSessionImpl.php line 39
<?phpdeclare(strict_types=1);namespace App\Service\Management\Office;use App\Data\Office\Office;use App\Repository\Office\OfficeRepository;use Symfony\Component\HttpFoundation\RequestStack;use Symfony\Component\HttpFoundation\Session\SessionInterface;class OfficeSelectionSessionImpl implements OfficeSelectionService{private const SELECTED_OFFICE_KEY = 'management_selected_office';private SessionInterface $session;public function __construct(RequestStack $requestStack,private OfficeRepository $officeRepository,) {$this->session = $requestStack->getSession();}public function isOfficeSelected(): bool{return $this->getSelectedOffice() instanceof Office;}public function setSelectedOffice(?Office $office): void{$id = $office->getId();$this->session->set(self::SELECTED_OFFICE_KEY, $id);}public function getSelectedOffice(): ?Office{$id = $this->session->get(self::SELECTED_OFFICE_KEY);if (is_string($id)) {$office = $this->officeRepository->findOneBy(['id' => $id]);}return $office ?? null;}}