src/Controller/Management/DashboardController.php line 27
<?phpdeclare(strict_types=1);namespace App\Controller\Management;use App\Data\Appointment\Appointment;use App\Data\Appointment\AppointmentFilterWaitingRoom;use App\Entity\Office\Office;use App\Form\WaitingRoom\Model\WaitingRoomCallModel;use App\Form\WaitingRoom\Model\WaitingRoomCheckinModel;use App\Form\WaitingRoom\Model\WaitingRoomFinishModel;use App\Form\WaitingRoom\Type\WaitingRoomCallType;use App\Form\WaitingRoom\Type\WaitingRoomCheckinType;use App\Form\WaitingRoom\Type\WaitingRoomFinishType;use App\Service\Appointment\AppointmentService;use Symfony\Component\HttpFoundation\Response;use Symfony\Component\Routing\Annotation\Route;use function array_map;#[Route(path: '/')]class DashboardController extends ManagementController{#[Route(path: '/', name: 'management_dashboard')]public function view(AppointmentService $appointmentService): Response{$office = $this->getOffice();if (!$office instanceof Office) {return $this->redirectToOfficeSelection();} else {$this->denyAccessUnlessGranted(attribute: 'OFFICE_DASHBOARD_VIEW', subject: $office);}$appointments = $appointmentService->findBetween($office, new AppointmentFilterWaitingRoom());$checkinForms = array_map(function (Appointment $appointment) {return $this->createForm(WaitingRoomCheckinType::class, new WaitingRoomCheckinModel())->createView();}, $appointments);$callForms = array_map(function (Appointment $appointment) {return $this->createForm(WaitingRoomCallType::class, new WaitingRoomCallModel())->createView();}, $appointments);$finishForms = array_map(function (Appointment $appointment) {return $this->createForm(WaitingRoomFinishType::class, new WaitingRoomFinishModel())->createView();}, $appointments);return $this->render('management/dashboard/dashboard.html.twig', ['appointments' => $appointments,'checkinForms' => $checkinForms,'callForms' => $callForms,'finishForms' => $finishForms,]);}}