<?php
declare(strict_types=1);
namespace App\Controller;
use App\Repository\EventRepository;
use App\Repository\PostRepository;
use App\Repository\SettingRepository;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Annotation\Route;
class DashboardController extends AbstractController
{
#[Route(path: '/', name: 'dashboard')]
public function index(
Request $request,
SettingRepository $settingRepository,
EventRepository $eventRepository,
PostRepository $postRepository): Response
{
$lastLogin = null;
if($request->hasSession() && $request->getSession()->get('lastLogin')) {
$lastLogin = $request->getSession()->get('lastLogin');
}
return $this->render('dashboard/index.html.twig', [
'settings' => $settingRepository->find(SettingController::MAIN_SETTING_ROW),
'lastLogin' => $lastLogin,
'lastPost' => $postRepository->findOneBy([], ['createdAt' => 'DESC']),
'nextEvent' => $eventRepository->findNextEventByUser($this->getUser()),
'numEventsThisMonth' => $eventRepository->findNumEventsThisMonthByUser($this->getUser()),
]);
}
}