<?php
namespace App\Controller;

use App\Entity\Commentaire;
use App\Entity\Etablissement;
use App\Form\CommentaireType;
use App\Repository\CommentaireRepository;
use Doctrine\ORM\EntityManagerInterface;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Annotation\Route;

#[Route('/commentaires')]
class CommentaireController extends AbstractController
{
    private $entityManager;

    // Injecter l'EntityManagerInterface dans le constructeur
    public function __construct(EntityManagerInterface $entityManager)
    {
        $this->entityManager = $entityManager;
    }

    #[Route('/etablissement/{id}', name: 'commentaires_etablissement')]
    public function afficherCommentaires(Etablissement $etablissement, CommentaireRepository $commentaireRepository): Response
    {
        // Assurez-vous que $etablissement est une instance de l'entité Etablissement
        $commentaires = $commentaireRepository->findByEtablissement($etablissement);

        return $this->render('commentaires_etablissement.html.twig', [
            'etablissement' => $etablissement,
            'commentaires' => $commentaires,
        ]);
    }

    #[Route('/ajouter/{etablissement}', name: 'ajouter_commentaire')]
    public function ajouterCommentaire(Etablissement $etablissement, Request $request): Response
    {
        $commentaire = new Commentaire();
        $form = $this->createForm(CommentaireType::class, $commentaire);

        $form->handleRequest($request);

        if ($form->isSubmitted() && $form->isValid()) {
            $commentaire->setEtablissement($etablissement);

            // Utilisez l'EntityManager injecté
            $this->entityManager->persist($commentaire);
            $this->entityManager->flush();

            return $this->redirectToRoute('commentaires_etablissement', ['id' => $etablissement->getId()]);
        }

        return $this->render('commentaires_ajouter.html.twig', [
            'etablissement' => $etablissement,
            'form' => $form->createView(),
        ]);
    }
}
