<?php
namespace App\Controller;
use App\Entity\Course;
use App\Entity\Group;
use App\Entity\Faq;
use App\Service\CourseService;
use Doctrine\Persistence\ManagerRegistry;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Annotation\Route;
use Symfony\Component\HttpFoundation\Session\SessionInterface;
class CourseDetailController extends AbstractController
{
/**
* @Route("/kurs/{id}/{name}", name="app_coure_detail")
*/
public function index(ManagerRegistry $doctrine, int $id): Response
{
$course = $doctrine->getRepository(Course::class)->find($id);
$faq = $doctrine->getRepository(Faq::class)->findAllArray();
$courseDetail = $course->getCourseDetail();
$courseService = new CourseService($course);
$courseData = [
'id' => $course->getId(),
'name' => $course->getName(),
'photo' => $courseDetail->getPhoto(),
'video' => $courseDetail->getVideo(),
'duration' => $courseDetail->getDuration(),
'lessons' => $courseDetail->getLessonsInCourse(),
'description' => $courseDetail->getDescription(),
'free_lesson' => $courseDetail->getFreeLesson(),
'price' => [
'monthly' => $course->getCoursePrice()->getMonthly(),
'quarterly' => $course->getCoursePrice()->getQuarterly(),
'yearly' => $course->getCoursePrice()->getYearly(),
],
'level' => $courseService->getLevel(),
'schedule' => $courseService->getSchedule()
];
return $this->render('course_detail/index.html.twig', [
'course' => $courseData,
'faq' => $faq
]);
}
/**
* @Route("/kurs/{id}/{name}/{type}/harmonogram", name="course_free_group_schedule")
* @Route("/kurs/{id}/{name}/harmonogram", name="course_group_schedule")
*/
public function selectGroup(ManagerRegistry $doctrine, SessionInterface $session, int $id, string $type = 'regular'): Response
{
$groupList = $doctrine->getRepository(Group::class)->getNewGroupsByCourseIdAndType($id, $type);
$session->set('selected_course', $id);
if (count($groupList)) {
return $this->render('course_schedule/index.html.twig', [
'groupList' => $groupList
]);
} else {
return $this->redirectToRoute('app_sign_up', [
'courseId' => $id,
'type' => $type
]);
}
}
}