<?php

namespace App\EventListener;

use Symfony\Component\HttpKernel\Event\RequestEvent;

/**
 * Force le chargement de la session pour les routes /api
 * Exécuté très tôt dans le cycle de requête
 */
class ApiForceSessionListener
{
    public function onKernelRequest(RequestEvent $event): void
    {
        $request = $event->getRequest();

        // Seulement pour les routes /api
        if (!str_starts_with($request->getPathInfo(), '/api')) {
            return;
        }

        // IMPORTANT: Forcer l'initialisation de la session
        // Cela garantit que la session existante sera chargée
        // avant que le firewall n'essaie de faire son travail
        try {
            $session = $request->getSession();
            // L'accès à la session force son chargement/initialisation
            if ($session->has('_sf2_attributes')) {
                // Session existe et contient des données
            }
        } catch (\Exception $e) {
            // Ignorer les erreurs de session
        }
    }
}

