<?php
namespace App\Controller;
use App\Entity\Answear;
use App\Entity\MemoryGame;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\Routing\Annotation\Route;
use Symfony\Component\HttpFoundation\RedirectResponse;
//use Sensio\Bundle\FrameworkExtraBundle\Configuration\IsGranted;
class MainController extends AbstractController
{
/**
* @Route("/", name="app_homepage")
*/
public function homepage(): Response
{
$rank = [];
$answear = $memory = null;
$quizNr = $this->getQuizNr();
if ($this->getUser()) {
$quizNr = $this->getQuizNr();
$em = $this->getDoctrine()->getManager();
$rank[1] = $em->getRepository(Answear::class)->getRank(1,3);
$rank[2] = $em->getRepository(Answear::class)->getRank(2,3);
$rank[3] = $em->getRepository(Answear::class)->getRank(3,3);
$rank[4] = $em->getRepository(Answear::class)->getRank(4,3);
$answear = $em
->getRepository(Answear::class)
->findOneBy(['user' => $this->getUser(),'quiz' => $quizNr], ['id' => 'DESC']);
$memory = $em
->getRepository(MemoryGame::class)
->findOneBy(['user' => $this->getUser(),'quiz' => $quizNr], ['id' => 'DESC']);
}
return $this->render('page/homepage.html.twig', [
'rank' => $rank,
'answear' => $answear,
'memory' => $memory,
'quiz' => $quizNr,
]);
}
/**
* @Route("/summary", name="app_summary")
*/
public function summary(): Response
{
$em = $this->getDoctrine()->getManager();
$quizNr = $this->getQuizNr();
$answear = $em
->getRepository(Answear::class)
->findOneBy(['user' => $this->getUser(),'quiz' => $quizNr]);
$memory = $em
->getRepository(MemoryGame::class)
->findOneBy(['user' => $this->getUser(),'quiz' => $quizNr]);
if (!($answear instanceof Answear) || !($answear instanceof Answear)) {
return new RedirectResponse($this->get('router')->generate('app_homepage'));
}
$points = $answear->getPoints() + $memory->getPoints();
$place = $em
->getRepository(Answear::class)->getSummaryPosition($this->getUser());
return $this->render('page/summary.html.twig', [
'points' => $points,
'place' => $place,
'quiz' => $quizNr,
]);
}
/**
* @Route("/rules", name="app_rules")
*/
public function rules(): Response
{
return $this->render('page/rules.html.twig', [
]);
}
protected function getQuizNr()
{
$now = date('Y-m-d');
if ($now < '2026-06-08') {
return 1;
} else if ($now >= '2026-05-18' && $now < '2026-05-25') {
return 2;
} else if ($now >= '2026-05-25' && $now < '2026-06-01') {
return 3;
} else if ($now >= '2026-06-01') {
return 4;
}
return 1;
}
}