Exceptions
Exception
Symfony\Component\HttpClient\Exception\ ClientException
Show exception properties
Symfony\Component\HttpClient\Exception\ClientException {#2053 -response: Symfony\Component\HttpClient\Response\TraceableResponse {#1992 -client: Symfony\Component\HttpClient\UriTemplateHttpClient {#976 -expander: null -defaultVars: [] -client: Symfony\Component\HttpClient\CurlHttpClient {#980 -defaultOptions: array:31 [ "auth_basic" => null "auth_bearer" => null "query" => [] "headers" => [] "body" => "" "json" => null "user_data" => null "max_redirects" => 20 "http_version" => null "base_uri" => null "buffer" => true "on_progress" => null "resolve" => [] "proxy" => null "no_proxy" => null "timeout" => null "max_duration" => 0 "bindto" => "0" "verify_peer" => true "verify_host" => true "cafile" => null "capath" => null "local_cert" => null "local_pk" => null "passphrase" => null "ciphers" => null "peer_fingerprint" => null "capture_peer_cert_chain" => false "crypto_method" => 33 "extra" => [] "auth_ntlm" => null ] -logger: Monolog\Logger {#950 #name: "http_client" #handlers: array:2 [ 0 => Monolog\Handler\StreamHandler {#525 #level: Monolog\Level {#65 +name: "Debug" +value: 100 } #bubble: true #processors: array:1 [ 0 => Monolog\Processor\PsrLogMessageProcessor {#523 -dateFormat: null -removeUsedContextFields: false } ] #formatter: Monolog\Formatter\JsonFormatter {#88 #dateFormat: "Y-m-d\TH:i:sP" #maxNormalizeDepth: 9 #maxNormalizeItemCount: 1000 -jsonEncodeOptions: 2099008 #basePath: "" #batchMode: 1 #appendNewline: true #ignoreEmptyContextAndExtra: false #includeStacktraces: false } #streamChunkSize: 53687091 #stream: stream resource @319 : false : true : false : "PHP" : "STDIO" : "a" : 0 : false : "php://stderr" : [] } #url: "php://stderr" -errorMessage: null #filePermission: null #useLocking: false #fileOpenMode: "a" -dirCreated: true -retrying: false } 1 => Symfony\Bridge\Monolog\Handler\ConsoleHandler {#526 #level: Monolog\Level {#65} #bubble: true #processors: [] #formatter: null -output: null -verbosityLevelMap: array:5 [ 16 => Monolog\Level {#508 +name: "Error" +value: 400 } 32 => Monolog\Level {#507 +name: "Warning" +value: 300 } 64 => Monolog\Level {#506 +name: "Notice" +value: 250 } 128 => Monolog\Level {#503 +name: "Info" +value: 200 } 256 => Monolog\Level {#65} ] -consoleFormatterOptions: [] } ] #processors: array:1 [ 0 => Symfony\Bridge\Monolog\Processor\DebugProcessor {#515 -records: array:3 [ "" => array:1 [ 0 => array:7 [ "timestamp" => 1777911018 "timestamp_rfc3339" => "2026-05-04T18:10:18.928+02:00" "message" => "Warning: Zend OPcache API is restricted by "restrict_api" configuration directive" "priority" => 100 "priorityName" => "DEBUG" "context" => array:1 [ "exception" => Symfony\Component\ErrorHandler\Exception\SilencedErrorContext {#489 +count: 8 -severity: E_WARNING : { { Symfony\Component\ErrorHandler\DebugClassLoader->loadClass(string $class): void … ›// no-op›} elseif (\function_exists('opcache_is_script_cached') && @opcache_is_script_cached($file)) {›include $file;} { › ›$this->autoloader = Autoloader::register($dir, $namespace, $proxyGenerator);›}} } } ] "channel" => "php" ] ] 8 => array:40 [ 0 => array:7 [ "timestamp" => 1777911018 "timestamp_rfc3339" => "2026-05-04T18:10:18.931+02:00" "message" => "Matched route "{route}"." "priority" => 200 "priorityName" => "INFO" "context" => array:4 [ "route" => "app_dashboard_insights" "route_parameters" => array:2 [ "_route" => "app_dashboard_insights" "_controller" => "App\Controller\Dashboard\DashboardController::dashboardInsights" ] "request_uri" => "https://kplan.kameldigitalsn.com/dashboard/insights?department=&periodMonth=9&periodYear=2025&scope=ORGANIZATION" "method" => "GET" ] "channel" => "request" ] 1 => array:7 [ "timestamp" => 1777911018 "timestamp_rfc3339" => "2026-05-04T18:10:18.948+02:00" "message" => "Connecting with parameters {params}" "priority" => 200 "priorityName" => "INFO" "context" => array:1 [ "params" => array:11 [ "dbname" => "batramskplan" "host" => "batramskplan.mysql.db" "port" => "3306" "user" => "batramskplan" "password" => "<redacted>" "use_savepoints" => true "driver" => "pdo_mysql" "idle_connection_ttl" => 600 "driverOptions" => [] "defaultTableOptions" => array:1 [ "collation" => "utf8mb4_unicode_ci" ] "charset" => "utf8mb4" ] ] "channel" => "doctrine" ] 2 => array:7 [ "timestamp" => 1777911018 "timestamp_rfc3339" => "2026-05-04T18:10:18.953+02:00" "message" => "User Deprecated: Using ArrayAccess on Doctrine\ORM\Mapping\FieldMapping is deprecated and will not be possible in Doctrine ORM 4.0. Use the corresponding property instead. (ArrayAccessImplementation.php:31 called by AbstractAnnotationDriver.php:134, https://github.com/doctrine/orm/pull/11211, package doctrine/orm)" "priority" => 200 "priorityName" => "INFO" "context" => array:1 [ "exception" => ErrorException {#754 #message: "User Deprecated: Using ArrayAccess on Doctrine\ORM\Mapping\FieldMapping is deprecated and will not be possible in Doctrine ORM 4.0. Use the corresponding property instead. (ArrayAccessImplementation.php:31 called by AbstractAnnotationDriver.php:134, https://github.com/doctrine/orm/pull/11211, package doctrine/orm)" #code: 0 #file: "/home/batrams/Kplan/vendor/doctrine/deprecations/src/Deprecation.php" #line: 208 #severity: E_USER_DEPRECATED : { { Doctrine\Deprecations\Deprecation::delegateTriggerToBackend(string $message, array $backtrace, string $link, string $package): void … › ›@trigger_error($message, E_USER_DEPRECATED);›}} { Doctrine\Deprecations\Deprecation::trigger(string $package, string $link, string $message, ...$args): void … › ›self::delegateTriggerToBackend($message, $backtrace, $link, $package);›}} { Doctrine\ORM\Mapping\FieldMapping->offsetGet(mixed $offset): mixed … ›{›Deprecation::trigger(›'doctrine/orm',} { Gedmo\Mapping\Driver\AbstractAnnotationDriver->isValidField($meta, $field) … › ›return $mapping && in_array($mapping['type'], $this->validTypes, true);›}} { Gedmo\Timestampable\Mapping\Driver\Attribute->readExtendedMetadata($meta, array &$config) … › ›if (!$this->isValidField($meta, $field)) {›throw new InvalidMappingException("Field - [{$field}] type is not valid and must be 'date', 'datetime' or 'time' in class - {$meta->getName()}");} { Gedmo\Mapping\Driver\Chain->readExtendedMetadata($meta, array &$config) … ›if (0 === strpos($meta->getName(), $namespace)) {›$extendedMetadata = $driver->readExtendedMetadata($meta, $config);› } { Gedmo\Mapping\ExtensionMetadataFactory->getExtensionMetadata($meta) … › ›$extendedMetadata = $this->driver->readExtendedMetadata($meta, $config);› } { Gedmo\Mapping\MappedEventSubscriber->loadMetadataForObjectClass(ObjectManager $objectManager, $metadata) … ›try {›$config = $factory->getExtensionMetadata($metadata);›} catch (\ReflectionException $e) {} { Gedmo\AbstractTrackingListener->loadClassMetadata(EventArgs $eventArgs) … ›{›$this->loadMetadataForObjectClass($eventArgs->getObjectManager(), $eventArgs->getClassMetadata());›}} { Symfony\Bridge\Doctrine\ContainerAwareEventManager->dispatchEvent(string $eventName, ?EventArgs $eventArgs = null): void … ›foreach ($this->listeners[$eventName] as $hash => $listener) {›$listener->{$this->methods[$eventName][$hash]}($eventArgs);›}} { Doctrine\ORM\Mapping\ClassMetadataFactory->doLoadMetadata(ClassMetadata $class, ?ClassMetadata $parent, bool $rootEntityFound, array $nonSuperclassParents): void … ›$eventArgs = new LoadClassMetadataEventArgs($class, $this->em);›$this->evm->dispatchEvent(Events::loadClassMetadata, $eventArgs);›}} { Doctrine\Bundle\DoctrineBundle\Mapping\ClassMetadataFactory->doLoadMetadata($class, $parent, $rootEntityFound, array $nonSuperclassParents): void … ›{›parent::doLoadMetadata($class, $parent, $rootEntityFound, $nonSuperclassParents);› } { Doctrine\Persistence\Mapping\AbstractClassMetadataFactory->loadMetadata(string $name) … › ›$this->doLoadMetadata($class, $parent, $rootEntityFound, $visited);› } { Doctrine\Persistence\Mapping\AbstractClassMetadataFactory->getMetadataFor(string $className) … ›} else {›$loadedMetadata = $this->loadMetadata($realClassName);›$classNames = array_combine(} { Doctrine\ORM\EntityManager->getClassMetadata(string $className): ClassMetadata … ›{›return $this->metadataFactory->getMetadataFor($className);›}} { Doctrine\Bundle\DoctrineBundle\Repository\ServiceEntityRepositoryProxy->resolveRepository(): EntityRepository … › ›return new EntityRepository($manager, $manager->getClassMetadata($this->entityClass));›}} { Doctrine\Bundle\DoctrineBundle\Repository\ServiceEntityRepositoryProxy->getEntityManager(): EntityManagerInterface … ›{›return ($this->repository ??= $this->resolveRepository())->getEntityManager();›}} { App\Repository\DepartmentRepository->__construct(ManagerRegistry $registry, UserContextService $userContextService) … ›parent::__construct($registry, Department::class);›$this->nestedTreeRepo = $this->getEntityManager()->getRepository(Department::class);›$this->userContextService = $userContextService;} { ContainerTQBsBG0\App_KernelDevDebugContainer::getDepartmentRepositoryService($container) … › ›return $container->privates['App\\Repository\\DepartmentRepository'] = new \App\Repository\DepartmentRepository(($container->services['doctrine'] ?? self::getDoctrineService($container)), $a);›}} { ContainerTQBsBG0\App_KernelDevDebugContainer::getUserRepositoryService($container) … ›}›$b = ($container->privates['App\\Repository\\DepartmentRepository'] ?? self::getDepartmentRepositoryService($container));› } { ContainerTQBsBG0\getUserProviderService::do($container, $lazyLoad = true) … › ›$a = ($container->privates['App\\Repository\\UserRepository'] ?? self::getUserRepositoryService($container));› } { ContainerTQBsBG0\App_KernelDevDebugContainer->load($file, $lazyLoad = true): mixed … › ›return class_exists($class, false) ? $class::do($this, $lazyLoad) : $service;›}} { ContainerTQBsBG0\getSecurity_Authenticator_FormLogin_MainService::do($container, $lazyLoad = true) … › ›return $container->privates['security.authenticator.form_login.main'] = new \Symfony\Component\Security\Http\Authenticator\FormLoginAuthenticator($b, ($container->privates['App\\Security\\UserProvider'] ?? $container->load('getUserProviderService')), $c, $d, ['login_path' => 'app_login', 'check_path' => 'app_login', 'enable_csrf' => true, 'use_forward' => false, 'username_parameter' => '_username', 'password_parameter' => '_password', 'csrf_parameter' => '_csrf_token', 'csrf_token_id' => 'authenticate', 'post_only' => true, 'form_only' => false]);›}} { ContainerTQBsBG0\App_KernelDevDebugContainer->load($file, $lazyLoad = true): mixed … › ›return class_exists($class, false) ? $class::do($this, $lazyLoad) : $service;›}} { ContainerTQBsBG0\getSecurity_Firewall_Map_Context_MainService::do($container, $lazyLoad = true) … › ›$a = ($container->privates['security.authenticator.form_login.main'] ?? $container->load('getSecurity_Authenticator_FormLogin_MainService'));› } { ContainerTQBsBG0\App_KernelDevDebugContainer->load($file, $lazyLoad = true): mixed … › ›return class_exists($class, false) ? $class::do($this, $lazyLoad) : $service;›}} { Symfony\Component\DependencyInjection\Container->getService(string|false $registry, string $id, ?string $method, string|bool $load): mixed … ›if (false !== $registry) {›return $this->{$registry}[$id] ??= $load ? $this->load($method) : $this->{$method}($this);›}} { Symfony\Component\DependencyInjection\Argument\ServiceLocator->get(string $id): mixed … ›1 => $this->serviceMap[$id][0],›default => ($this->factory)(...$this->serviceMap[$id]),›};} { Symfony\Bundle\SecurityBundle\Security\FirewallMap->getFirewallContext(Request $request): FirewallContext … › ›return $this->container->get($contextId);›}} { Symfony\Bundle\SecurityBundle\Security\FirewallMap->getFirewallConfig(Request $request): FirewallConfig … ›{›return $this->getFirewallContext($request)?->getConfig();›}} { Symfony\Bundle\SecurityBundle\EventListener\FirewallListener->configureLogoutUrlGenerator(RequestEvent $event): void … › ›if ($this->map instanceof FirewallMap && $config = $this->map->getFirewallConfig($event->getRequest())) {›$this->logoutUrlGenerator->setCurrentFirewall($config->getName(), $config->getContext());} { Symfony\Component\EventDispatcher\Debug\WrappedListener->__invoke(object $event, string $eventName, EventDispatcherInterface $dispatcher): void … ›try {›($this->optimizedListener ?? $this->listener)($event, $eventName, $dispatcher);›} finally {} { Symfony\Component\EventDispatcher\EventDispatcher->callListeners(iterable $listeners, string $eventName, object $event): void … ›}›$listener($event, $eventName, $this);›}} { Symfony\Component\EventDispatcher\EventDispatcher->dispatch(object $event, ?string $eventName = null): object … ›if ($listeners) {›$this->callListeners($listeners, $eventName, $event);›}} { Symfony\Component\EventDispatcher\Debug\TraceableEventDispatcher->dispatch(object $event, ?string $eventName = null): object … ›try {›$this->dispatcher->dispatch($event, $eventName);›} finally {} { Symfony\Component\HttpKernel\HttpKernel->handleRaw(Request $request, int $type = self::MAIN_REQUEST): Response … ›$event = new RequestEvent($this, $request, $type);›$this->dispatcher->dispatch($event, KernelEvents::REQUEST);› } { Symfony\Component\HttpKernel\HttpKernel->handle(Request $request, int $type = HttpKernelInterface::MAIN_REQUEST, bool $catch = true): Response … ›try {›return $response = $this->handleRaw($request, $type);›} catch (\Throwable $e) {} { Symfony\Component\HttpKernel\Kernel->handle(Request $request, int $type = HttpKernelInterface::MAIN_REQUEST, bool $catch = true): Response … ›try {›return $this->getHttpKernel()->handle($request, $type, $catch);›} finally {} { Symfony\Component\Runtime\Runner\Symfony\HttpKernelRunner->run(): int … ›{›$response = $this->kernel->handle($this->request);› } { require_once … ›->getRunner($app)›->run()›);} { › ›require_once dirname(__DIR__).'/vendor/autoload_runtime.php';› } } } ] "channel" => "deprecation" ] 3 => array:7 [ "timestamp" => 1777911018 "timestamp_rfc3339" => "2026-05-04T18:10:18.960+02:00" "message" => "Checking for authenticator support." "priority" => 100 "priorityName" => "DEBUG" "context" => array:2 [ "firewall_name" => "main" "authenticators" => 1 ] "channel" => "security" ] 4 => array:7 [ "timestamp" => 1777911018 "timestamp_rfc3339" => "2026-05-04T18:10:18.960+02:00" "message" => "Checking support on authenticator." "priority" => 100 "priorityName" => "DEBUG" "context" => array:2 [ "firewall_name" => "main" "authenticator" => "Symfony\Component\Security\Http\Authenticator\FormLoginAuthenticator" ] "channel" => "security" ] 5 => array:7 [ "timestamp" => 1777911018 "timestamp_rfc3339" => "2026-05-04T18:10:18.960+02:00" "message" => "Authenticator does not support the request." "priority" => 100 "priorityName" => "DEBUG" "context" => array:2 [ "firewall_name" => "main" "authenticator" => "Symfony\Component\Security\Http\Authenticator\FormLoginAuthenticator" ] "channel" => "security" ] 6 => array:7 [ "timestamp" => 1777911018 "timestamp_rfc3339" => "2026-05-04T18:10:18.964+02:00" "message" => "Read existing security token from the session." "priority" => 100 "priorityName" => "DEBUG" "context" => array:2 [ "key" => "_security_main" "token_class" => "Symfony\Component\Security\Core\Authentication\Token\UsernamePasswordToken" ] "channel" => "security" ] 7 => array:7 [ "timestamp" => 1777911018 "timestamp_rfc3339" => "2026-05-04T18:10:18.980+02:00" "message" => "Executing statement: {sql} (parameters: {params}, types: {types})" "priority" => 100 "priorityName" => "DEBUG" "context" => array:3 [ "sql" => "SELECT u0_.id AS id_0, u0_.email AS email_1, u0_.password AS password_2, u0_.first_name AS first_name_3, u0_.last_name AS last_name_4, u0_.date_of_birth AS date_of_birth_5, u0_.is_active AS is_active_6, u0_.confirmation_token AS confirmation_token_7, u0_.password_reset_token AS password_reset_token_8, u0_.last_login_at AS last_login_at_9, u0_.phone_number AS phone_number_10, u0_.fonction AS fonction_11, u0_.sex AS sex_12, u0_.avatar AS avatar_13, u0_.created_at AS created_at_14, u0_.updated_at AS updated_at_15, u0_.deleted_at AS deleted_at_16, u0_.id AS id_17, u0_.email AS email_18, u0_.password AS password_19, u0_.first_name AS first_name_20, u0_.last_name AS last_name_21, u0_.date_of_birth AS date_of_birth_22, u0_.is_active AS is_active_23, u0_.confirmation_token AS confirmation_token_24, u0_.password_reset_token AS password_reset_token_25, u0_.last_login_at AS last_login_at_26, u0_.phone_number AS phone_number_27, u0_.fonction AS fonction_28, u0_.sex AS sex_29, u0_.avatar AS avatar_30, u0_.created_at AS created_at_31, u0_.updated_at AS updated_at_32, u0_.deleted_at AS deleted_at_33, r1_.id AS id_34, r1_.code AS code_35, r1_.name AS name_36, r1_.description AS description_37, r1_.is_default AS is_default_38, r1_.created_at AS created_at_39, r1_.updated_at AS updated_at_40, r1_.deleted_at AS deleted_at_41, p2_.id AS id_42, p2_.code AS code_43, p2_.name AS name_44, p2_.description AS description_45, p2_.created_at AS created_at_46, p2_.updated_at AS updated_at_47, p2_.deleted_at AS deleted_at_48, u0_.user_preference_id AS user_preference_id_49, u0_.department_id AS department_id_50, u0_.organization_id AS organization_id_51, r1_.department_id AS department_id_52, r1_.organization_id AS organization_id_53, p2_.permission_group_id AS permission_group_id_54 FROM user u0_ LEFT JOIN user_role u3_ ON u0_.id = u3_.user_id LEFT JOIN role r1_ ON r1_.id = u3_.role_id AND (r1_.deleted_at IS NULL) LEFT JOIN role_permission r4_ ON r1_.id = r4_.role_id LEFT JOIN permission p2_ ON p2_.id = r4_.permission_id AND (p2_.deleted_at IS NULL) WHERE (u0_.id = ?) AND (u0_.deleted_at IS NULL)" "params" => array:1 [ 1 => 2 ] "types" => array:1 [ 1 => 1 ] ] "channel" => "doctrine" ] 8 => array:7 [ "timestamp" => 1777911018 "timestamp_rfc3339" => "2026-05-04T18:10:18.992+02:00" "message" => "User was reloaded from a user provider." "priority" => 100 "priorityName" => "DEBUG" "context" => array:2 [ "provider" => "App\Security\UserProvider" "username" => "massamba.fall92+01@gmail.com" ] "channel" => "security" ] 9 => array:7 [ "timestamp" => 1777911018 "timestamp_rfc3339" => "2026-05-04T18:10:18.993+02:00" "message" => "Notified event "{event}" to listener "{listener}"." "priority" => 100 "priorityName" => "DEBUG" "context" => array:2 [ "event" => "debug.security.authorization.vote" "listener" => "Symfony\Bundle\SecurityBundle\EventListener\VoteListener::onVoterVote" ] "channel" => "event" ] 10 => array:7 [ "timestamp" => 1777911018 "timestamp_rfc3339" => "2026-05-04T18:10:18.993+02:00" "message" => "Notified event "{event}" to listener "{listener}"." "priority" => 100 "priorityName" => "DEBUG" "context" => array:2 [ "event" => "debug.security.authorization.vote" "listener" => "Symfony\Bundle\SecurityBundle\EventListener\VoteListener::onVoterVote" ] "channel" => "event" ] 11 => array:7 [ "timestamp" => 1777911018 "timestamp_rfc3339" => "2026-05-04T18:10:18.993+02:00" "message" => "Notified event "{event}" to listener "{listener}"." "priority" => 100 "priorityName" => "DEBUG" "context" => array:2 [ "event" => "kernel.request" "listener" => "Symfony\Component\HttpKernel\EventListener\DebugHandlersListener::configure" ] "channel" => "event" ] 12 => array:7 [ "timestamp" => 1777911018 "timestamp_rfc3339" => "2026-05-04T18:10:18.993+02:00" "message" => "Notified event "{event}" to listener "{listener}"." "priority" => 100 "priorityName" => "DEBUG" "context" => array:2 [ "event" => "kernel.request" "listener" => "Stof\DoctrineExtensionsBundle\EventListener\IpTraceListener::onKernelRequest" ] "channel" => "event" ] 13 => array:7 [ "timestamp" => 1777911018 "timestamp_rfc3339" => "2026-05-04T18:10:18.993+02:00" "message" => "Notified event "{event}" to listener "{listener}"." "priority" => 100 "priorityName" => "DEBUG" "context" => array:2 [ "event" => "kernel.request" "listener" => "Symfony\Component\HttpKernel\EventListener\ValidateRequestListener::onKernelRequest" ] "channel" => "event" ] 14 => array:7 [ "timestamp" => 1777911018 "timestamp_rfc3339" => "2026-05-04T18:10:18.993+02:00" "message" => "Notified event "{event}" to listener "{listener}"." "priority" => 100 "priorityName" => "DEBUG" "context" => array:2 [ "event" => "kernel.request" "listener" => "Symfony\Bridge\Doctrine\Middleware\IdleConnection\Listener::onKernelRequest" ] "channel" => "event" ] 15 => array:7 [ "timestamp" => 1777911018 "timestamp_rfc3339" => "2026-05-04T18:10:18.993+02:00" "message" => "Notified event "{event}" to listener "{listener}"." "priority" => 100 "priorityName" => "DEBUG" "context" => array:2 [ "event" => "kernel.request" "listener" => "Symfony\Component\HttpKernel\EventListener\SessionListener::onKernelRequest" ] "channel" => "event" ] 16 => array:7 [ "timestamp" => 1777911018 "timestamp_rfc3339" => "2026-05-04T18:10:18.993+02:00" "message" => "Notified event "{event}" to listener "{listener}"." "priority" => 100 "priorityName" => "DEBUG" "context" => array:2 [ "event" => "kernel.request" "listener" => "Symfony\Component\HttpKernel\EventListener\LocaleListener::setDefaultLocale" ] "channel" => "event" ] 17 => array:7 [ "timestamp" => 1777911018 "timestamp_rfc3339" => "2026-05-04T18:10:18.993+02:00" "message" => "Notified event "{event}" to listener "{listener}"." "priority" => 100 "priorityName" => "DEBUG" "context" => array:2 [ "event" => "kernel.request" "listener" => "Symfony\Component\HttpKernel\EventListener\FragmentListener::onKernelRequest" ] "channel" => "event" ] 18 => array:7 [ "timestamp" => 1777911018 "timestamp_rfc3339" => "2026-05-04T18:10:18.993+02:00" "message" => "Notified event "{event}" to listener "{listener}"." "priority" => 100 "priorityName" => "DEBUG" "context" => array:2 [ "event" => "kernel.request" "listener" => "Symfony\Component\HttpKernel\EventListener\RouterListener::onKernelRequest" ] "channel" => "event" ] 19 => array:7 [ "timestamp" => 1777911018 "timestamp_rfc3339" => "2026-05-04T18:10:18.993+02:00" "message" => "Notified event "{event}" to listener "{listener}"." "priority" => 100 "priorityName" => "DEBUG" "context" => array:2 [ "event" => "kernel.request" "listener" => "Symfony\Component\HttpKernel\EventListener\LocaleListener::onKernelRequest" ] "channel" => "event" ] 20 => array:7 [ "timestamp" => 1777911018 "timestamp_rfc3339" => "2026-05-04T18:10:18.993+02:00" "message" => "Notified event "{event}" to listener "{listener}"." "priority" => 100 "priorityName" => "DEBUG" "context" => array:2 [ "event" => "kernel.request" "listener" => "Symfony\Component\HttpKernel\EventListener\LocaleAwareListener::onKernelRequest" ] "channel" => "event" ] 21 => array:7 [ "timestamp" => 1777911018 "timestamp_rfc3339" => "2026-05-04T18:10:18.993+02:00" "message" => "Notified event "{event}" to listener "{listener}"." "priority" => 100 "priorityName" => "DEBUG" "context" => array:2 [ "event" => "kernel.request" "listener" => "Symfony\Bundle\SecurityBundle\Debug\TraceableFirewallListener::configureLogoutUrlGenerator" ] "channel" => "event" ] 22 => array:7 [ "timestamp" => 1777911018 "timestamp_rfc3339" => "2026-05-04T18:10:18.993+02:00" "message" => "Notified event "{event}" to listener "{listener}"." "priority" => 100 "priorityName" => "DEBUG" "context" => array:2 [ "event" => "kernel.request" "listener" => "Symfony\Bundle\SecurityBundle\Debug\TraceableFirewallListener::onKernelRequest" ] "channel" => "event" ] 23 => array:7 [ "timestamp" => 1777911018 "timestamp_rfc3339" => "2026-05-04T18:10:18.993+02:00" "message" => "Notified event "{event}" to listener "{listener}"." "priority" => 100 "priorityName" => "DEBUG" "context" => array:2 [ "event" => "kernel.request" "listener" => "Knp\Bundle\PaginatorBundle\Subscriber\SlidingPaginationSubscriber::onKernelRequest" ] "channel" => "event" ] 24 => array:7 [ "timestamp" => 1777911018 "timestamp_rfc3339" => "2026-05-04T18:10:18.993+02:00" "message" => "Notified event "{event}" to listener "{listener}"." "priority" => 100 "priorityName" => "DEBUG" "context" => array:2 [ "event" => "kernel.request" "listener" => "Stof\DoctrineExtensionsBundle\EventListener\BlameListener::onKernelRequest" ] "channel" => "event" ] 25 => array:7 [ "timestamp" => 1777911018 "timestamp_rfc3339" => "2026-05-04T18:10:18.994+02:00" "message" => "Notified event "{event}" to listener "{listener}"." "priority" => 100 "priorityName" => "DEBUG" "context" => array:2 [ "event" => "kernel.controller" "listener" => "Symfony\Bundle\FrameworkBundle\DataCollector\RouterDataCollector::onKernelController" ] "channel" => "event" ] 26 => array:7 [ "timestamp" => 1777911018 "timestamp_rfc3339" => "2026-05-04T18:10:18.994+02:00" "message" => "Notified event "{event}" to listener "{listener}"." "priority" => 100 "priorityName" => "DEBUG" "context" => array:2 [ "event" => "kernel.controller" "listener" => "Symfony\Component\HttpKernel\DataCollector\RequestDataCollector::onKernelController" ] "channel" => "event" ] 27 => array:7 [ "timestamp" => 1777911018 "timestamp_rfc3339" => "2026-05-04T18:10:18.994+02:00" "message" => "Notified event "{event}" to listener "{listener}"." "priority" => 100 "priorityName" => "DEBUG" "context" => array:2 [ "event" => "kernel.controller" "listener" => "DH\AuditorBundle\Event\ViewerEventSubscriber::onKernelController" ] "channel" => "event" ] 28 => array:7 [ "timestamp" => 1777911019 "timestamp_rfc3339" => "2026-05-04T18:10:19.007+02:00" "message" => "Notified event "{event}" to listener "{listener}"." "priority" => 100 "priorityName" => "DEBUG" "context" => array:2 [ "event" => "kernel.controller_arguments" "listener" => "Symfony\Component\Security\Http\EventListener\IsCsrfTokenValidAttributeListener::onKernelControllerArguments" ] "channel" => "event" ] 29 => array:7 [ "timestamp" => 1777911019 "timestamp_rfc3339" => "2026-05-04T18:10:19.007+02:00" "message" => "Notified event "{event}" to listener "{listener}"." "priority" => 100 "priorityName" => "DEBUG" "context" => array:2 [ "event" => "kernel.controller_arguments" "listener" => "App\EventSubscriber\PermissionsOnlySubscriber::onKernelControllerArguments" ] "channel" => "event" ] 30 => array:7 [ "timestamp" => 1777911019 "timestamp_rfc3339" => "2026-05-04T18:10:19.008+02:00" "message" => "Notified event "{event}" to listener "{listener}"." "priority" => 100 "priorityName" => "DEBUG" "context" => array:2 [ "event" => "kernel.controller_arguments" "listener" => "Symfony\Component\Security\Http\EventListener\IsGrantedAttributeListener::onKernelControllerArguments" ] "channel" => "event" ] 31 => array:7 [ "timestamp" => 1777911019 "timestamp_rfc3339" => "2026-05-04T18:10:19.008+02:00" "message" => "Notified event "{event}" to listener "{listener}"." "priority" => 100 "priorityName" => "DEBUG" "context" => array:2 [ "event" => "kernel.controller_arguments" "listener" => "Symfony\Component\HttpKernel\EventListener\CacheAttributeListener::onKernelControllerArguments" ] "channel" => "event" ] 32 => array:7 [ "timestamp" => 1777911019 "timestamp_rfc3339" => "2026-05-04T18:10:19.008+02:00" "message" => "Notified event "{event}" to listener "{listener}"." "priority" => 100 "priorityName" => "DEBUG" "context" => array:2 [ "event" => "kernel.controller_arguments" "listener" => "ContainerTQBsBG0\RequestPayloadValueResolverGhost01ca9cc::onKernelControllerArguments" ] "channel" => "event" ] 33 => array:7 [ "timestamp" => 1777911019 "timestamp_rfc3339" => "2026-05-04T18:10:19.008+02:00" "message" => "Notified event "{event}" to listener "{listener}"." "priority" => 100 "priorityName" => "DEBUG" "context" => array:2 [ "event" => "kernel.controller_arguments" "listener" => "Symfony\Component\HttpKernel\EventListener\ErrorListener::onControllerArguments" ] "channel" => "event" ] 34 => array:7 [ "timestamp" => 1777911019 "timestamp_rfc3339" => "2026-05-04T18:10:19.008+02:00" "message" => "Executing statement: {sql} (parameters: {params}, types: {types})" "priority" => 100 "priorityName" => "DEBUG" "context" => array:3 [ "sql" => "SELECT t0.id AS id_1, t0.name AS name_2, t0.abbreviation AS abbreviation_3, t0.lft AS lft_4, t0.lvl AS lvl_5, t0.rgt AS rgt_6, t0.created_at AS created_at_7, t0.updated_at AS updated_at_8, t0.deleted_at AS deleted_at_9, t0.organization_id AS organization_id_10, t0.tree_root AS tree_root_11, t0.parent_id AS parent_id_12 FROM department t0 WHERE t0.id = ? AND ((t0.deleted_at IS NULL))" "params" => array:1 [ 1 => 19 ] "types" => array:1 [ 1 => 1 ] ] "channel" => "doctrine" ] 35 => array:7 [ "timestamp" => 1777911019 "timestamp_rfc3339" => "2026-05-04T18:10:19.015+02:00" "message" => "Executing statement: {sql} (parameters: {params}, types: {types})" "priority" => 100 "priorityName" => "DEBUG" "context" => array:3 [ "sql" => "SELECT d0_.id AS id_0, d0_.code AS code_1, d0_.label AS label_2, d0_.value AS value_3, d0_.updated_at AS updated_at_4, d0_.created_at AS created_at_5, d0_.period_month AS period_month_6, d0_.period_year AS period_year_7, d0_.scope AS scope_8, d0_.metadata AS metadata_9, d0_.department_id AS department_id_10, d0_.organization_id AS organization_id_11 FROM dashboard_kpi d0_ WHERE (d0_.period_month = ? AND d0_.period_year = ?) AND d0_.organization_id = ? AND d0_.scope = ? AND d0_.department_id IS NULL" "params" => array:4 [ 1 => "9" 2 => "2025" 3 => 1 4 => "ORGANIZATION" ] "types" => array:4 [ 1 => 2 2 => 2 3 => 1 4 => 2 ] ] "channel" => "doctrine" ] 36 => array:7 [ "timestamp" => 1777911019 "timestamp_rfc3339" => "2026-05-04T18:10:19.016+02:00" "message" => "Lock acquired, now computing item "{key}"" "priority" => 200 "priorityName" => "INFO" "context" => array:1 [ "key" => "011faf1e180fe65f70e532d1ea39d0e6" ] "channel" => "cache" ] 37 => array:7 [ "timestamp" => 1777911019 "timestamp_rfc3339" => "2026-05-04T18:10:19.019+02:00" "message" => "Request: "POST https://api.openai.com/v1/chat/completions"" "priority" => 200 "priorityName" => "INFO" "context" => [] "channel" => "http_client" ] 38 => array:7 [ "timestamp" => 1777911019 "timestamp_rfc3339" => "2026-05-04T18:10:19.529+02:00" "message" => "Response: "401 https://api.openai.com/v1/chat/completions"" "priority" => 200 "priorityName" => "INFO" "context" => [] "channel" => "http_client" ] 39 => array:7 [ "timestamp" => 1777911019 "timestamp_rfc3339" => "2026-05-04T18:10:19.537+02:00" "message" => "Uncaught PHP Exception Symfony\Component\HttpClient\Exception\ClientException: "HTTP/2 401 returned for "https://api.openai.com/v1/chat/completions"." at TraceableResponse.php line 209" "priority" => 500 "priorityName" => "CRITICAL" "context" => array:1 [ "exception" => Symfony\Component\HttpClient\Exception\ClientException {#2053} ] "channel" => "request" ] ] 2353 => array:23 [ 0 => array:7 [ "timestamp" => 1777911019 "timestamp_rfc3339" => "2026-05-04T18:10:19.539+02:00" "message" => "Notified event "{event}" to listener "{listener}"." "priority" => 100 "priorityName" => "DEBUG" "context" => array:2 [ "event" => "kernel.request" "listener" => "Symfony\Component\HttpKernel\EventListener\DebugHandlersListener::configure" ] "channel" => "event" ] 1 => array:7 [ "timestamp" => 1777911019 "timestamp_rfc3339" => "2026-05-04T18:10:19.539+02:00" "message" => "Notified event "{event}" to listener "{listener}"." "priority" => 100 "priorityName" => "DEBUG" "context" => array:2 [ "event" => "kernel.request" "listener" => "Stof\DoctrineExtensionsBundle\EventListener\IpTraceListener::onKernelRequest" ] "channel" => "event" ] 2 => array:7 [ "timestamp" => 1777911019 "timestamp_rfc3339" => "2026-05-04T18:10:19.539+02:00" "message" => "Notified event "{event}" to listener "{listener}"." "priority" => 100 "priorityName" => "DEBUG" "context" => array:2 [ "event" => "kernel.request" "listener" => "Symfony\Component\HttpKernel\EventListener\ValidateRequestListener::onKernelRequest" ] "channel" => "event" ] 3 => array:7 [ "timestamp" => 1777911019 "timestamp_rfc3339" => "2026-05-04T18:10:19.539+02:00" "message" => "Notified event "{event}" to listener "{listener}"." "priority" => 100 "priorityName" => "DEBUG" "context" => array:2 [ "event" => "kernel.request" "listener" => "Symfony\Bridge\Doctrine\Middleware\IdleConnection\Listener::onKernelRequest" ] "channel" => "event" ] 4 => array:7 [ "timestamp" => 1777911019 "timestamp_rfc3339" => "2026-05-04T18:10:19.539+02:00" "message" => "Notified event "{event}" to listener "{listener}"." "priority" => 100 "priorityName" => "DEBUG" "context" => array:2 [ "event" => "kernel.request" "listener" => "Symfony\Component\HttpKernel\EventListener\SessionListener::onKernelRequest" ] "channel" => "event" ] 5 => array:7 [ "timestamp" => 1777911019 "timestamp_rfc3339" => "2026-05-04T18:10:19.539+02:00" "message" => "Notified event "{event}" to listener "{listener}"." "priority" => 100 "priorityName" => "DEBUG" "context" => array:2 [ "event" => "kernel.request" "listener" => "Symfony\Component\HttpKernel\EventListener\LocaleListener::setDefaultLocale" ] "channel" => "event" ] 6 => array:7 [ "timestamp" => 1777911019 "timestamp_rfc3339" => "2026-05-04T18:10:19.539+02:00" "message" => "Notified event "{event}" to listener "{listener}"." "priority" => 100 "priorityName" => "DEBUG" "context" => array:2 [ "event" => "kernel.request" "listener" => "Symfony\Component\HttpKernel\EventListener\FragmentListener::onKernelRequest" ] "channel" => "event" ] 7 => array:7 [ "timestamp" => 1777911019 "timestamp_rfc3339" => "2026-05-04T18:10:19.539+02:00" "message" => "Notified event "{event}" to listener "{listener}"." "priority" => 100 "priorityName" => "DEBUG" "context" => array:2 [ "event" => "kernel.request" "listener" => "Symfony\Component\HttpKernel\EventListener\RouterListener::onKernelRequest" ] "channel" => "event" ] 8 => array:7 [ "timestamp" => 1777911019 "timestamp_rfc3339" => "2026-05-04T18:10:19.539+02:00" "message" => "Notified event "{event}" to listener "{listener}"." "priority" => 100 "priorityName" => "DEBUG" "context" => array:2 [ "event" => "kernel.request" "listener" => "Symfony\Component\HttpKernel\EventListener\LocaleListener::onKernelRequest" ] "channel" => "event" ] 9 => array:7 [ "timestamp" => 1777911019 "timestamp_rfc3339" => "2026-05-04T18:10:19.539+02:00" "message" => "Notified event "{event}" to listener "{listener}"." "priority" => 100 "priorityName" => "DEBUG" "context" => array:2 [ "event" => "kernel.request" "listener" => "Symfony\Component\HttpKernel\EventListener\LocaleAwareListener::onKernelRequest" ] "channel" => "event" ] 10 => array:7 [ "timestamp" => 1777911019 "timestamp_rfc3339" => "2026-05-04T18:10:19.539+02:00" "message" => "Notified event "{event}" to listener "{listener}"." "priority" => 100 "priorityName" => "DEBUG" "context" => array:2 [ "event" => "kernel.request" "listener" => "Symfony\Bundle\SecurityBundle\Debug\TraceableFirewallListener::configureLogoutUrlGenerator" ] "channel" => "event" ] 11 => array:7 [ "timestamp" => 1777911019 "timestamp_rfc3339" => "2026-05-04T18:10:19.539+02:00" "message" => "Notified event "{event}" to listener "{listener}"." "priority" => 100 "priorityName" => "DEBUG" "context" => array:2 [ "event" => "kernel.request" "listener" => "Symfony\Bundle\SecurityBundle\Debug\TraceableFirewallListener::onKernelRequest" ] "channel" => "event" ] 12 => array:7 [ "timestamp" => 1777911019 "timestamp_rfc3339" => "2026-05-04T18:10:19.539+02:00" "message" => "Notified event "{event}" to listener "{listener}"." "priority" => 100 "priorityName" => "DEBUG" "context" => array:2 [ "event" => "kernel.request" "listener" => "Knp\Bundle\PaginatorBundle\Subscriber\SlidingPaginationSubscriber::onKernelRequest" ] "channel" => "event" ] 13 => array:7 [ "timestamp" => 1777911019 "timestamp_rfc3339" => "2026-05-04T18:10:19.539+02:00" "message" => "Notified event "{event}" to listener "{listener}"." "priority" => 100 "priorityName" => "DEBUG" "context" => array:2 [ "event" => "kernel.request" "listener" => "Stof\DoctrineExtensionsBundle\EventListener\BlameListener::onKernelRequest" ] "channel" => "event" ] 14 => array:7 [ "timestamp" => 1777911019 "timestamp_rfc3339" => "2026-05-04T18:10:19.541+02:00" "message" => "Notified event "{event}" to listener "{listener}"." "priority" => 100 "priorityName" => "DEBUG" "context" => array:2 [ "event" => "kernel.controller" "listener" => "Symfony\Bundle\FrameworkBundle\DataCollector\RouterDataCollector::onKernelController" ] "channel" => "event" ] 15 => array:7 [ "timestamp" => 1777911019 "timestamp_rfc3339" => "2026-05-04T18:10:19.541+02:00" "message" => "Notified event "{event}" to listener "{listener}"." "priority" => 100 "priorityName" => "DEBUG" "context" => array:2 [ "event" => "kernel.controller" "listener" => "Symfony\Component\HttpKernel\DataCollector\RequestDataCollector::onKernelController" ] "channel" => "event" ] 16 => array:7 [ "timestamp" => 1777911019 "timestamp_rfc3339" => "2026-05-04T18:10:19.541+02:00" "message" => "Notified event "{event}" to listener "{listener}"." "priority" => 100 "priorityName" => "DEBUG" "context" => array:2 [ "event" => "kernel.controller" "listener" => "DH\AuditorBundle\Event\ViewerEventSubscriber::onKernelController" ] "channel" => "event" ] 17 => array:7 [ "timestamp" => 1777911019 "timestamp_rfc3339" => "2026-05-04T18:10:19.541+02:00" "message" => "Notified event "{event}" to listener "{listener}"." "priority" => 100 "priorityName" => "DEBUG" "context" => array:2 [ "event" => "kernel.controller_arguments" "listener" => "Symfony\Component\Security\Http\EventListener\IsCsrfTokenValidAttributeListener::onKernelControllerArguments" ] "channel" => "event" ] 18 => array:7 [ "timestamp" => 1777911019 "timestamp_rfc3339" => "2026-05-04T18:10:19.541+02:00" "message" => "Notified event "{event}" to listener "{listener}"." "priority" => 100 "priorityName" => "DEBUG" "context" => array:2 [ "event" => "kernel.controller_arguments" "listener" => "App\EventSubscriber\PermissionsOnlySubscriber::onKernelControllerArguments" ] "channel" => "event" ] 19 => array:7 [ "timestamp" => 1777911019 "timestamp_rfc3339" => "2026-05-04T18:10:19.541+02:00" "message" => "Notified event "{event}" to listener "{listener}"." "priority" => 100 "priorityName" => "DEBUG" "context" => array:2 [ "event" => "kernel.controller_arguments" "listener" => "Symfony\Component\Security\Http\EventListener\IsGrantedAttributeListener::onKernelControllerArguments" ] "channel" => "event" ] 20 => array:7 [ "timestamp" => 1777911019 "timestamp_rfc3339" => "2026-05-04T18:10:19.541+02:00" "message" => "Notified event "{event}" to listener "{listener}"." "priority" => 100 "priorityName" => "DEBUG" "context" => array:2 [ "event" => "kernel.controller_arguments" "listener" => "Symfony\Component\HttpKernel\EventListener\CacheAttributeListener::onKernelControllerArguments" ] "channel" => "event" ] 21 => array:7 [ "timestamp" => 1777911019 "timestamp_rfc3339" => "2026-05-04T18:10:19.541+02:00" "message" => "Notified event "{event}" to listener "{listener}"." "priority" => 100 "priorityName" => "DEBUG" "context" => array:2 [ "event" => "kernel.controller_arguments" "listener" => "ContainerTQBsBG0\RequestPayloadValueResolverGhost01ca9cc::onKernelControllerArguments" ] "channel" => "event" ] 22 => array:7 [ "timestamp" => 1777911019 "timestamp_rfc3339" => "2026-05-04T18:10:19.541+02:00" "message" => "Notified event "{event}" to listener "{listener}"." "priority" => 100 "priorityName" => "DEBUG" "context" => array:2 [ "event" => "kernel.controller_arguments" "listener" => "Symfony\Component\HttpKernel\EventListener\ErrorListener::onControllerArguments" ] "channel" => "event" ] ] ] -errorCount: array:3 [ "" => 0 8 => 1 2353 => 0 ] -requestStack: Symfony\Component\HttpKernel\Debug\VirtualRequestStack {#516 -requests: [] -decorated: Symfony\Component\HttpFoundation\RequestStack {#521 -requests: array:2 [ 0 => Symfony\Component\HttpFoundation\Request {#8 +attributes: Symfony\Component\HttpFoundation\ParameterBag {#60 #parameters: array:6 [ "_stopwatch_token" => "cb813d" "_route" => "app_dashboard_insights" "_controller" => "App\Controller\Dashboard\DashboardController::dashboardInsights" "_route_params" => [] "_firewall_context" => "security.firewall.map.context.main" "_security_firewall_run" => "_security_main" ] } +request: Symfony\Component\HttpFoundation\InputBag {#58 #parameters: [] } +query: Symfony\Component\HttpFoundation\InputBag {#59 #parameters: array:4 [ "periodMonth" => "9" "periodYear" => "2025" "department" => "" "scope" => "ORGANIZATION" ] } +server: Symfony\Component\HttpFoundation\ServerBag {#63 #parameters: array:90 [ "USER" => "batrams" "SCRIPT_NAME" => "/index.php" "REQUEST_URI" => "/dashboard/insights?periodMonth=9&periodYear=2025&department=&scope=ORGANIZATION" "QUERY_STRING" => "periodMonth=9&periodYear=2025&department=&scope=ORGANIZATION" "REQUEST_METHOD" => "GET" "SERVER_PROTOCOL" => "HTTP/1.1" "GATEWAY_INTERFACE" => "CGI/1.1" "REDIRECT_QUERY_STRING" => "periodMonth=9&periodYear=2025&department=&scope=ORGANIZATION" "REDIRECT_URL" => "/dashboard/insights" "REMOTE_PORT" => "46286" "SCRIPT_FILENAME" => "/home/batrams/Kplan/public/index.php" "SERVER_ADMIN" => "postmaster@kplan.kameldigitalsn.com" "DOCUMENT_ROOT" => "/home/batrams/Kplan/public" "REMOTE_ADDR" => "41.214.116.18" "SERVER_PORT" => "443" "SERVER_ADDR" => "10.123.20.10" "SERVER_NAME" => "kplan.kameldigitalsn.com" "SERVER_SOFTWARE" => "Apache" "SERVER_SIGNATURE" => "" "HTTP_REMOTE_IP" => "41.214.116.18" "HTTP_PRIORITY" => "u=1, i" "HTTP_ACCEPT_LANGUAGE" => "fr-FR,fr;q=0.9,en-US;q=0.8,en;q=0.7" "HTTP_ACCEPT_ENCODING" => "gzip, deflate, br, zstd" "HTTP_REFERER" => "https://kplan.kameldigitalsn.com/dashboard?periodMonth=9&periodYear=2025" "HTTP_SEC_FETCH_DEST" => "empty" "HTTP_SEC_FETCH_MODE" => "cors" "HTTP_SEC_FETCH_SITE" => "same-origin" "HTTP_ACCEPT" => "*/*" "HTTP_SEC_CH_UA_MOBILE" => "?0" "HTTP_SEC_CH_UA" => ""Chromium";v="146", "Not-A.Brand";v="24", "Google Chrome";v="146"" "HTTP_USER_AGENT" => "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/146.0.0.0 Safari/537.36" "HTTP_SEC_CH_UA_PLATFORM" => ""macOS"" "HTTP_X_OVHREQUEST_ID" => "b2d79d5653b5bfe2e6b5c568bf5e5a03" "HTTP_X_FORWARDED_PROTO" => "https" "HTTP_X_FORWARDED_FOR" => "41.214.116.18" "HTTP_X_PREDICTOR" => "1" "HTTP_COOKIE" => "PHPSESSID=82a6b55e8a8317056d5b8ec13fbeb332" "HTTP_HOST" => "kplan.kameldigitalsn.com" "ENVIRONMENT" => "production" "CFG_CLUSTER" => "cluster123" "HTTPS" => "on" "SCRIPT_URI" => "https://kplan.kameldigitalsn.com:443/dashboard/insights" "SCRIPT_URL" => "/dashboard/insights" "GEOIP_LONGITUDE" => "-17.444500" "GEOIP_LATITUDE" => "14.667000" "GEOIP_AREA_CODE" => "0" "GEOIP_DMA_CODE" => "0" "GEOIP_CITY" => "Dakar" "GEOIP_REGION" => "01" "GEOIP_COUNTRY_NAME" => "Senegal" "GEOIP_COUNTRY_CODE" => "SN" "UNIQUE_ID" => "afjE6qoYroxwBird7Al1vQAAAmM" "REDIRECT_STATUS" => "200" "FCGI_ROLE" => "RESPONDER" "PHP_SELF" => "/index.php" "REQUEST_TIME_FLOAT" => 1777911018.9023 "REQUEST_TIME" => 1777911018 "argv" => array:1 [ 0 => "periodMonth=9&periodYear=2025&department=&scope=ORGANIZATION" ] "argc" => 1 "SYMFONY_DOTENV_PATH" => "/home/batrams/Kplan/.env" "APP_ENV" => "dev" "APP_SECRET" => "fc17c3c63363db67a7131d4f3d4aa076" "APP_URL" => "http://localhost:8742" "MYSQL_USER" => "batramskplan" "MYSQL_PASSWORD" => "Kplan2020ML" "MYSQL_HOST" => "batramskplan.mysql.db" "MYSQL_DB_NAME" => "batramskplan" "MYSQL_PORT" => "3306" "MESSENGER_TRANSPORT_DSN" => "sync://" "MAILER_DSN" => "sendgrid://KEY@default" "EMAIL_SEND_METHOD" => "BREVO" "BREVO_API_KEY" => "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" "MAILGUN_API_KEY" => "66d92310568aecee8f710ba3748ddeb0-c02fd0ba-c282267d" "MAILGUN_DOMAIN" => "k-plan.fallintech.fr" "OPENAI_API_KEY" => "" "OPENAI_API_URL" => "https://api.openai.com/v1/chat/completions" "LOCK_DSN" => "flock" "WKHTMLTOPDF_PATH" => "/usr/local/bin/wkhtmltopdf" "WKHTMLTOIMAGE_PATH" => "/usr/local/bin/wkhtmltoimage" "RUN_MIGRATIONS" => "true" "PHP_SESSION_SAVE_HANDLER" => "redis" "PHP_SESSION_SAVE_PATH" => "tcp://redis:6379?database=2&prefix=sess:" "CACHE_DSN" => "redis://redis:6379/1" "GOOGLE_VIEWER_ENABLE" => "true" "SYMFONY_DOTENV_VARS" => "APP_ENV,APP_SECRET,APP_URL,MYSQL_USER,MYSQL_PASSWORD,MYSQL_HOST,MYSQL_DB_NAME,MYSQL_PORT,MESSENGER_TRANSPORT_DSN,MAILER_DSN,EMAIL_SEND_METHOD,BREVO_API_KEY,MAILGUN_API_KEY,MAILGUN_DOMAIN,OPENAI_API_KEY,OPENAI_API_URL,LOCK_DSN,WKHTMLTOPDF_PATH,WKHTMLTOIMAGE_PATH,RUN_MIGRATIONS,PHP_SESSION_SAVE_HANDLER,PHP_SESSION_SAVE_PATH,CACHE_DSN,GOOGLE_VIEWER_ENABLE,SENDGRID_API_KEY,MESSENGER_TRANSPORT_DSN_HIGH,MAILER_FROM_EMAIL,MAILER_FROM_NAME" "SENDGRID_API_KEY" => "" "MESSENGER_TRANSPORT_DSN_HIGH" => "sync://" "MAILER_FROM_EMAIL" => "no-reply@k-plan.fallintech.fr" "MAILER_FROM_NAME" => "KPLAN Notifications" "APP_DEBUG" => "1" ] } +files: Symfony\Component\HttpFoundation\FileBag {#62 #parameters: [] } +cookies: Symfony\Component\HttpFoundation\InputBag {#61 #parameters: array:1 [ "PHPSESSID" => "82a6b55e8a8317056d5b8ec13fbeb332" ] } +headers: Symfony\Component\HttpFoundation\HeaderBag {#64 #headers: array:20 [ "remote-ip" => array:1 [ 0 => "41.214.116.18" ] "priority" => array:1 [ 0 => "u=1, i" ] "accept-language" => array:1 [ 0 => "fr-FR,fr;q=0.9,en-US;q=0.8,en;q=0.7" ] "accept-encoding" => array:1 [ 0 => "gzip, deflate, br, zstd" ] "referer" => array:1 [ 0 => "https://kplan.kameldigitalsn.com/dashboard?periodMonth=9&periodYear=2025" ] "sec-fetch-dest" => array:1 [ 0 => "empty" ] "sec-fetch-mode" => array:1 [ 0 => "cors" ] "sec-fetch-site" => array:1 [ 0 => "same-origin" ] "accept" => array:1 [ 0 => "*/*" ] "sec-ch-ua-mobile" => array:1 [ 0 => "?0" ] "sec-ch-ua" => array:1 [ 0 => ""Chromium";v="146", "Not-A.Brand";v="24", "Google Chrome";v="146"" ] "user-agent" => array:1 [ 0 => "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/146.0.0.0 Safari/537.36" ] "sec-ch-ua-platform" => array:1 [ 0 => ""macOS"" ] "x-ovhrequest-id" => array:1 [ 0 => "b2d79d5653b5bfe2e6b5c568bf5e5a03" ] "x-forwarded-proto" => array:1 [ 0 => "https" ] "x-forwarded-for" => array:1 [ 0 => "41.214.116.18" ] "x-predictor" => array:1 [ 0 => "1" ] "cookie" => array:1 [ 0 => "PHPSESSID=82a6b55e8a8317056d5b8ec13fbeb332" ] "host" => array:1 [ 0 => "kplan.kameldigitalsn.com" ] "x-php-ob-level" => array:1 [ 0 => "1" ] ] #cacheControl: [] } #content: null #languages: null #charsets: null #encodings: null #acceptableContentTypes: null #pathInfo: "/dashboard/insights" #requestUri: "/dashboard/insights?periodMonth=9&periodYear=2025&department=&scope=ORGANIZATION" #baseUrl: "" #basePath: null #method: "GET" #format: null #session: Symfony\Component\HttpFoundation\Session\Session {#542 #storage: Symfony\Component\HttpFoundation\Session\Storage\NativeSessionStorage {#580 #bags: array:2 [ "attributes" => Symfony\Component\HttpFoundation\Session\SessionBagProxy {#604 -bag: Symfony\Component\HttpFoundation\Session\Attribute\AttributeBag {#588 #attributes: &6 array:6 [ "_security.last_username" => "massamba.fall92+01@gmail.com" "_security_main" => "O:74:"Symfony\Component\Security\Core\Authentication\Token\UsernamePasswordToken":3:{i:0;N;i:1;s:4:"main";i:2;a:5:{i:0;O:15:"App\Entity\User":24:{s:19:"\x00App\Entity\User\x00id";i:2;s:22:"\x00App\Entity\User\x00email";s:28:"massamba.fall92+01@gmail.com";s:25:"\x00App\Entity\User\x00password";s:60:"$2y$13$W769pnBezXMkhegpxwHbWOFjIzCB9fAgpPsVT6jlJq4vsXNRuWnOK";s:26:"\x00App\Entity\User\x00firstName";s:8:"Babacar ";s:25:"\x00App\Entity\User\x00lastName";s:4:"Youm";s:28:"\x00App\Entity\User\x00dateOfBirth";O:8:"DateTime":3:{s:4:"date";s:26:"2025-04-10 00:00:00.000000";s:13:"timezone_type";i:3;s:8:"timezone";s:12:"Europe/Paris";}s:25:"\x00App\Entity\User\x00isActive";b:1;s:34:"\x00App\Entity\User\x00confirmationToken";s:64:"d1695deaf888b39df90d889534aebd08b6a182c1d9006b227af6eee5ce04cc16";s:35:"\x00App\Entity\User\x00passwordResetToken";N;s:28:"\x00App\Entity\User\x00lastLoginAt";O:17:"DateTimeImmutable":3:{s:4:"date";s:26:"2026-05-04 18:03:08.000000";s:13:"timezone_type";i:3;s:8:"timezone";s:12:"Europe/Paris";}s:28:"\x00App\Entity\User\x00phoneNumber";s:9:"555432980";s:25:"\x00App\Entity\User\x00fonction";s:14:"Chef de projet";s:20:"\x00App\Entity\User\x00sex";s:4:"Male";s:25:"\x00App\Entity\User\x00fullName";N;s:23:"\x00App\Entity\User\x00avatar";s:42:"uploads/avatars/avatar-2-69017628a79ad.jpg";s:31:"\x00App\Entity\User\x00userPreference";O:40:"Proxies\__CG__\App\Entity\UserPreference":1:{s:29:"\x00App\Entity\UserPreference\x00id";i:1;}s:30:"\x00App\Entity\User\x00notifications";O:33:"Doctrine\ORM\PersistentCollection":2:{s:13:"\x00*\x00collection";O:43:"Doctrine\Common\Collections\ArrayCollection":1:{s:53:"\x00Doctrine\Common\Collections\ArrayCollection\x00elements";a:0:{}}s:14:"\x00*\x00initialized";b:0;}s:27:"\x00App\Entity\User\x00department";O:36:"Proxies\__CG__\App\Entity\Department":17:{s:25:"\x00App\Entity\Department\x00id";i:19;s:27:"\x00App\Entity\Department\x00name";s:52:"Agence pour la Sécurité de la Navigation Aérienne";s:35:"\x00App\Entity\Department\x00abbreviation";s:5:"ASNAS";s:35:"\x00App\Entity\Department\x00organization";O:38:"Proxies\__CG__\App\Entity\Organization":1:{s:27:"\x00App\Entity\Organization\x00id";i:1;}s:26:"\x00App\Entity\Department\x00lft";i:1;s:26:"\x00App\Entity\Department\x00lvl";i:0;s:26:"\x00App\Entity\Department\x00rgt";i:2;s:27:"\x00App\Entity\Department\x00root";r:33;s:29:"\x00App\Entity\Department\x00parent";N;s:31:"\x00App\Entity\Department\x00children";O:33:"Doctrine\ORM\PersistentCollection":2:{s:13:"\x00*\x00collection";O:43:"Doctrine\Common\Collections\ArrayCollection":1:{s:53:"\x00Doctrine\Common\Collections\ArrayCollection\x00elements";a:0:{}}s:14:"\x00*\x00initialized";b:0;}s:31:"\x00App\Entity\Department\x00projects";O:33:"Doctrine\ORM\PersistentCollection":2:{s:13:"\x00*\x00collection";O:43:"Doctrine\Common\Collections\ArrayCollection":1:{s:53:"\x00Doctrine\Common\Collections\ArrayCollection\x00elements";a:0:{}}s:14:"\x00*\x00initialized";b:0;}s:28:"\x00App\Entity\Department\x00users";O:33:"Doctrine\ORM\PersistentCollection":2:{s:13:"\x00*\x00collection";O:43:"Doctrine\Common\Collections\ArrayCollection":1:{s:53:"\x00Doctrine\Common\Collections\ArrayCollection\x00elements";a:0:{}}s:14:"\x00*\x00initialized";b:0;}s:28:"\x00App\Entity\Department\x00roles";O:33:"Doctrine\ORM\PersistentCollection":2:{s:13:"\x00*\x00collection";O:43:"Doctrine\Common\Collections\ArrayCollection":1:{s:53:"\x00Doctrine\Common\Collections\ArrayCollection\x00elements";a:0:{}}s:14:"\x00*\x00initialized";b:0;}s:31:"\x00App\Entity\Department\x00programs";O:33:"Doctrine\ORM\PersistentCollection":2:{s:13:"\x00*\x00collection";O:43:"Doctrine\Common\Collections\ArrayCollection":1:{s:53:"\x00Doctrine\Common\Collections\ArrayCollection\x00elements";a:0:{}}s:14:"\x00*\x00initialized";b:0;}s:12:"\x00*\x00createdAt";O:8:"DateTime":3:{s:4:"date";s:26:"2026-01-30 17:54:36.000000";s:13:"timezone_type";i:3;s:8:"timezone";s:12:"Europe/Paris";}s:12:"\x00*\x00updatedAt";O:8:"DateTime":3:{s:4:"date";s:26:"2026-01-30 17:54:36.000000";s:13:"timezone_type";i:3;s:8:"timezone";s:12:"Europe/Paris";}s:12:"\x00*\x00deletedAt";N;}s:26:"\x00App\Entity\User\x00userRoles";O:33:"Doctrine\ORM\PersistentCollection":2:{s:13:"\x00*\x00collection";O:43:"Doctrine\Common\Collections\ArrayCollection":1:{s:53:"\x00Doctrine\Common\Collections\ArrayCollection\x00elements";a:4:{i:0;O:15:"App\Entity\Role":12:{s:19:"\x00App\Entity\Role\x00id";i:2;s:21:"\x00App\Entity\Role\x00code";s:10:"ROLE_ADMIN";s:21:"\x00App\Entity\Role\x00name";s:32:"Administrateur de l'organisation";s:28:"\x00App\Entity\Role\x00description";s:57:"Charger d'administrer l'organisation, il peut tout faire.";s:28:"\x00App\Entity\Role\x00permissions";O:33:"Doctrine\ORM\PersistentCollection":2:{s:13:"\x00*\x00collection";O:43:"Doctrine\Common\Collections\ArrayCollection":1:{s:53:"\x00Doctrine\Common\Collections\ArrayCollection\x00elements";a:1:{i:0;O:21:"App\Entity\Permission":9:{s:25:"\x00App\Entity\Permission\x00id";i:3;s:27:"\x00App\Entity\Permission\x00code";s:15:"DEPARTMENT_LIST";s:27:"\x00App\Entity\Permission\x00name";s:51:"Lister tous les départements (sous-départements).";s:34:"\x00App\Entity\Permission\x00description";N;s:28:"\x00App\Entity\Permission\x00roles";O:33:"Doctrine\ORM\PersistentCollection":2:{s:13:"\x00*\x00collection";O:43:"Doctrine\Common\Collections\ArrayCollection":1:{s:53:"\x00Doctrine\Common\Collections\ArrayCollection\x00elements";a:0:{}}s:14:"\x00*\x00initialized";b:0;}s:38:"\x00App\Entity\Permission\x00permissionGroup";O:41:"Proxies\__CG__\App\Entity\PermissionGroup":1:{s:30:"\x00App\Entity\PermissionGroup\x00id";i:2;}s:12:"\x00*\x00createdAt";O:8:"DateTime":3:{s:4:"date";s:26:"2025-08-26 15:24:50.000000";s:13:"timezone_type";i:3;s:8:"timezone";s:12:"Europe/Paris";}s:12:"\x00*\x00updatedAt";O:8:"DateTime":3:{s:4:"date";s:26:"2025-08-26 15:24:50.000000";s:13:"timezone_type";i:3;s:8:"timezone";s:12:"Europe/Paris";}s:12:"\x00*\x00deletedAt";N;}}}s:14:"\x00*\x00initialized";b:1;}s:27:"\x00App\Entity\Role\x00department";N;s:29:"\x00App\Entity\Role\x00organization";N;s:22:"\x00App\Entity\Role\x00users";O:33:"Doctrine\ORM\PersistentCollection":2:{s:13:"\x00*\x00collection";O:43:"Doctrine\Common\Collections\ArrayCollection":1:{s:53:"\x00Doctrine\Common\Collections\ArrayCollection\x00elements";a:0:{}}s:14:"\x00*\x00initialized";b:0;}s:26:"\x00App\Entity\Role\x00isDefault";b:1;s:12:"\x00*\x00createdAt";O:8:"DateTime":3:{s:4:"date";s:26:"2025-08-26 15:24:34.000000";s:13:"timezone_type";i:3;s:8:"timezone";s:12:"Europe/Paris";}s:12:"\x00*\x00updatedAt";O:8:"DateTime":3:{s:4:"date";s:26:"2025-11-02 17:41:19.000000";s:13:"timezone_type";i:3;s:8:"timezone";s:12:"Europe/Paris";}s:12:"\x00*\x00deletedAt";N;}i:1;O:15:"App\Entity\Role":12:{s:19:"\x00App\Entity\Role\x00id";i:4;s:21:"\x00App\Entity\Role\x00code";s:24:"ROLE_PROJECT_RESPONSIBLE";s:21:"\x00App\Entity\Role\x00name";s:21:"Responsable de projet";s:28:"\x00App\Entity\Role\x00description";N;s:28:"\x00App\Entity\Role\x00permissions";O:33:"Doctrine\ORM\PersistentCollection":2:{s:13:"\x00*\x00collection";O:43:"Doctrine\Common\Collections\ArrayCollection":1:{s:53:"\x00Doctrine\Common\Collections\ArrayCollection\x00elements";a:40:{i:0;r:84;i:1;O:21:"App\Entity\Permission":9:{s:25:"\x00App\Entity\Permission\x00id";i:19;s:27:"\x00App\Entity\Permission\x00code";s:20:"USER_DEPARTMENT_LIST";s:27:"\x00App\Entity\Permission\x00name";s:66:"Lister tous les utilisateurs du département (sous-départements).";s:34:"\x00App\Entity\Permission\x00description";N;s:28:"\x00App\Entity\Permission\x00roles";O:33:"Doctrine\ORM\PersistentCollection":2:{s:13:"\x00*\x00collection";O:43:"Doctrine\Common\Collections\ArrayCollection":1:{s:53:"\x00Doctrine\Common\Collections\ArrayCollection\x00elements";a:0:{}}s:14:"\x00*\x00initialized";b:0;}s:38:"\x00App\Entity\Permission\x00permissionGroup";O:41:"Proxies\__CG__\App\Entity\PermissionGroup":1:{s:30:"\x00App\Entity\PermissionGroup\x00id";i:5;}s:12:"\x00*\x00createdAt";O:8:"DateTime":3:{s:4:"date";s:26:"2025-08-26 15:24:50.000000";s:13:"timezone_type";i:3;s:8:"timezone";s:12:"Europe/Paris";}s:12:"\x00*\x00updatedAt";O:8:"DateTime":3:{s:4:"date";s:26:"2025-08-26 15:24:50.000000";s:13:"timezone_type";i:3;s:8:"timezone";s:12:"Europe/Paris";}s:12:"\x00*\x00deletedAt";N;}i:2;O:21:"App\Entity\Permission":9:{s:25:"\x00App\Entity\Permission\x00id";i:20;s:27:"\x00App\Entity\Permission\x00code";s:9:"USER_VIEW";s:27:"\x00App\Entity\Permission\x00name";s:35:"Voir les détails de l'utilisateur.";s:34:"\x00App\Entity\Permission\x00description";N;s:28:"\x00App\Entity\Permission\x00roles";O:33:"Doctrine\ORM\PersistentCollection":2:{s:13:"\x00*\x00collection";O:43:"Doctrine\Common\Collections\ArrayCollection":1:{s:53:"\x00Doctrine\Common\Collections\ArrayCollection\x00elements";a:0:{}}s:14:"\x00*\x00initialized";b:0;}s:38:"\x00App\Entity\Permission\x00permissionGroup";r:139;s:12:"\x00*\x00createdAt";O:8:"DateTime":3:{s:4:"date";s:26:"2025-08-26 15:24:50.000000";s:13:"timezone_type";i:3;s:8:"timezone";s:12:"Europe/Paris";}s:12:"\x00*\x00updatedAt";O:8:"DateTime":3:{s:4:"date";s:26:"2025-08-26 15:24:50.000000";s:13:"timezone_type";i:3;s:8:"timezone";s:12:"Europe/Paris";}s:12:"\x00*\x00deletedAt";N;}i:3;O:21:"App\Entity\Permission":9:{s:25:"\x00App\Entity\Permission\x00id";i:23;s:27:"\x00App\Entity\Permission\x00code";s:17:"USER_ACCOUNT_EDIT";s:27:"\x00App\Entity\Permission\x00name";s:50:"Modifier les informations d'un compte utilisateur.";s:34:"\x00App\Entity\Permission\x00description";N;s:28:"\x00App\Entity\Permission\x00roles";O:33:"Doctrine\ORM\PersistentCollection":2:{s:13:"\x00*\x00collection";O:43:"Doctrine\Common\Collections\ArrayCollection":1:{s:53:"\x00Doctrine\Common\Collections\ArrayCollection\x00elements";a:0:{}}s:14:"\x00*\x00initialized";b:0;}s:38:"\x00App\Entity\Permission\x00permissionGroup";r:139;s:12:"\x00*\x00createdAt";O:8:"DateTime":3:{s:4:"date";s:26:"2025-08-26 15:24:50.000000";s:13:"timezone_type";i:3;s:8:"timezone";s:12:"Europe/Paris";}s:12:"\x00*\x00updatedAt";O:8:"DateTime":3:{s:4:"date";s:26:"2025-08-26 15:24:50.000000";s:13:"timezone_type";i:3;s:8:"timezone";s:12:"Europe/Paris";}s:12:"\x00*\x00deletedAt";N;}i:4;O:21:"App\Entity\Permission":9:{s:25:"\x00App\Entity\Permission\x00id";i:24;s:27:"\x00App\Entity\Permission\x00code";s:18:"USER_PASSWORD_EDIT";s:27:"\x00App\Entity\Permission\x00name";s:49:"Modifier le mot de passe d'un compte utilisateur.";s:34:"\x00App\Entity\Permission\x00description";N;s:28:"\x00App\Entity\Permission\x00roles";O:33:"Doctrine\ORM\PersistentCollection":2:{s:13:"\x00*\x00collection";O:43:"Doctrine\Common\Collections\ArrayCollection":1:{s:53:"\x00Doctrine\Common\Collections\ArrayCollection\x00elements";a:0:{}}s:14:"\x00*\x00initialized";b:0;}s:38:"\x00App\Entity\Permission\x00permissionGroup";r:139;s:12:"\x00*\x00createdAt";O:8:"DateTime":3:{s:4:"date";s:26:"2025-08-26 15:24:50.000000";s:13:"timezone_type";i:3;s:8:"timezone";s:12:"Europe/Paris";}s:12:"\x00*\x00updatedAt";O:8:"DateTime":3:{s:4:"date";s:26:"2025-08-26 15:24:50.000000";s:13:"timezone_type";i:3;s:8:"timezone";s:12:"Europe/Paris";}s:12:"\x00*\x00deletedAt";N;}i:5;O:21:"App\Entity\Permission":9:{s:25:"\x00App\Entity\Permission\x00id";i:28;s:27:"\x00App\Entity\Permission\x00code";s:23:"PROJECT_DEPARTMENT_LIST";s:27:"\x00App\Entity\Permission\x00name";s:61:"Lister tous les projets du département (sous-départements).";s:34:"\x00App\Entity\Permission\x00description";N;s:28:"\x00App\Entity\Permission\x00roles";O:33:"Doctrine\ORM\PersistentCollection":2:{s:13:"\x00*\x00collection";O:43:"Doctrine\Common\Collections\ArrayCollection":1:{s:53:"\x00Doctrine\Common\Collections\ArrayCollection\x00elements";a:0:{}}s:14:"\x00*\x00initialized";b:0;}s:38:"\x00App\Entity\Permission\x00permissionGroup";O:41:"Proxies\__CG__\App\Entity\PermissionGroup":1:{s:30:"\x00App\Entity\PermissionGroup\x00id";i:6;}s:12:"\x00*\x00createdAt";O:8:"DateTime":3:{s:4:"date";s:26:"2025-08-26 15:24:50.000000";s:13:"timezone_type";i:3;s:8:"timezone";s:12:"Europe/Paris";}s:12:"\x00*\x00updatedAt";O:8:"DateTime":3:{s:4:"date";s:26:"2025-08-26 15:24:50.000000";s:13:"timezone_type";i:3;s:8:"timezone";s:12:"Europe/Paris";}s:12:"\x00*\x00deletedAt";N;}i:6;O:21:"App\Entity\Permission":9:{s:25:"\x00App\Entity\Permission\x00id";i:29;s:27:"\x00App\Entity\Permission\x00code";s:14:"PROJECT_CREATE";s:27:"\x00App\Entity\Permission\x00name";s:25:"Créer un nouveau projet.";s:34:"\x00App\Entity\Permission\x00description";N;s:28:"\x00App\Entity\Permission\x00roles";O:33:"Doctrine\ORM\PersistentCollection":2:{s:13:"\x00*\x00collection";O:43:"Doctrine\Common\Collections\ArrayCollection":1:{s:53:"\x00Doctrine\Common\Collections\ArrayCollection\x00elements";a:0:{}}s:14:"\x00*\x00initialized";b:0;}s:38:"\x00App\Entity\Permission\x00permissionGroup";r:216;s:12:"\x00*\x00createdAt";O:8:"DateTime":3:{s:4:"date";s:26:"2025-08-26 15:24:50.000000";s:13:"timezone_type";i:3;s:8:"timezone";s:12:"Europe/Paris";}s:12:"\x00*\x00updatedAt";O:8:"DateTime":3:{s:4:"date";s:26:"2025-08-26 15:24:50.000000";s:13:"timezone_type";i:3;s:8:"timezone";s:12:"Europe/Paris";}s:12:"\x00*\x00deletedAt";N;}i:7;O:21:"App\Entity\Permission":9:{s:25:"\x00App\Entity\Permission\x00id";i:30;s:27:"\x00App\Entity\Permission\x00code";s:12:"PROJECT_VIEW";s:27:"\x00App\Entity\Permission\x00name";s:30:"Voir les détails d'un projet.";s:34:"\x00App\Entity\Permission\x00description";N;s:28:"\x00App\Entity\Permission\x00roles";O:33:"Doctrine\ORM\PersistentCollection":2:{s:13:"\x00*\x00collection";O:43:"Doctrine\Common\Collections\ArrayCollection":1:{s:53:"\x00Doctrine\Common\Collections\ArrayCollection\x00elements";a:0:{}}s:14:"\x00*\x00initialized";b:0;}s:38:"\x00App\Entity\Permission\x00permissionGroup";r:216;s:12:"\x00*\x00createdAt";O:8:"DateTime":3:{s:4:"date";s:26:"2025-08-26 15:24:50.000000";s:13:"timezone_type";i:3;s:8:"timezone";s:12:"Europe/Paris";}s:12:"\x00*\x00updatedAt";O:8:"DateTime":3:{s:4:"date";s:26:"2025-08-26 15:24:50.000000";s:13:"timezone_type";i:3;s:8:"timezone";s:12:"Europe/Paris";}s:12:"\x00*\x00deletedAt";N;}i:8;O:21:"App\Entity\Permission":9:{s:25:"\x00App\Entity\Permission\x00id";i:31;s:27:"\x00App\Entity\Permission\x00code";s:12:"PROJECT_EDIT";s:27:"\x00App\Entity\Permission\x00name";s:38:"Modifier les informations d'un projet.";s:34:"\x00App\Entity\Permission\x00description";N;s:28:"\x00App\Entity\Permission\x00roles";O:33:"Doctrine\ORM\PersistentCollection":2:{s:13:"\x00*\x00collection";O:43:"Doctrine\Common\Collections\ArrayCollection":1:{s:53:"\x00Doctrine\Common\Collections\ArrayCollection\x00elements";a:0:{}}s:14:"\x00*\x00initialized";b:0;}s:38:"\x00App\Entity\Permission\x00permissionGroup";r:216;s:12:"\x00*\x00createdAt";O:8:"DateTime":3:{s:4:"date";s:26:"2025-08-26 15:24:50.000000";s:13:"timezone_type";i:3;s:8:"timezone";s:12:"Europe/Paris";}s:12:"\x00*\x00updatedAt";O:8:"DateTime":3:{s:4:"date";s:26:"2025-08-26 15:24:50.000000";s:13:"timezone_type";i:3;s:8:"timezone";s:12:"Europe/Paris";}s:12:"\x00*\x00deletedAt";N;}i:9;O:21:"App\Entity\Permission":9:{s:25:"\x00App\Entity\Permission\x00id";i:37;s:27:"\x00App\Entity\Permission\x00code";s:22:"COMPONENT_PROJECT_LIST";s:27:"\x00App\Entity\Permission\x00name";s:38:"Lister tous les composantes du projet.";s:34:"\x00App\Entity\Permission\x00description";N;s:28:"\x00App\Entity\Permission\x00roles";O:33:"Doctrine\ORM\PersistentCollection":2:{s:13:"\x00*\x00collection";O:43:"Doctrine\Common\Collections\ArrayCollection":1:{s:53:"\x00Doctrine\Common\Collections\ArrayCollection\x00elements";a:0:{}}s:14:"\x00*\x00initialized";b:0;}s:38:"\x00App\Entity\Permission\x00permissionGroup";O:41:"Proxies\__CG__\App\Entity\PermissionGroup":1:{s:30:"\x00App\Entity\PermissionGroup\x00id";i:7;}s:12:"\x00*\x00createdAt";O:8:"DateTime":3:{s:4:"date";s:26:"2025-08-26 15:24:50.000000";s:13:"timezone_type";i:3;s:8:"timezone";s:12:"Europe/Paris";}s:12:"\x00*\x00updatedAt";O:8:"DateTime":3:{s:4:"date";s:26:"2025-08-26 15:24:50.000000";s:13:"timezone_type";i:3;s:8:"timezone";s:12:"Europe/Paris";}s:12:"\x00*\x00deletedAt";N;}i:10;O:21:"App\Entity\Permission":9:{s:25:"\x00App\Entity\Permission\x00id";i:38;s:27:"\x00App\Entity\Permission\x00code";s:16:"COMPONENT_CREATE";s:27:"\x00App\Entity\Permission\x00name";s:31:"Créer une nouvelle composante.";s:34:"\x00App\Entity\Permission\x00description";N;s:28:"\x00App\Entity\Permission\x00roles";O:33:"Doctrine\ORM\PersistentCollection":2:{s:13:"\x00*\x00collection";O:43:"Doctrine\Common\Collections\ArrayCollection":1:{s:53:"\x00Doctrine\Common\Collections\ArrayCollection\x00elements";a:0:{}}s:14:"\x00*\x00initialized";b:0;}s:38:"\x00App\Entity\Permission\x00permissionGroup";r:293;s:12:"\x00*\x00createdAt";O:8:"DateTime":3:{s:4:"date";s:26:"2025-08-26 15:24:50.000000";s:13:"timezone_type";i:3;s:8:"timezone";s:12:"Europe/Paris";}s:12:"\x00*\x00updatedAt";O:8:"DateTime":3:{s:4:"date";s:26:"2025-08-26 15:24:50.000000";s:13:"timezone_type";i:3;s:8:"timezone";s:12:"Europe/Paris";}s:12:"\x00*\x00deletedAt";N;}i:11;O:21:"App\Entity\Permission":9:{s:25:"\x00App\Entity\Permission\x00id";i:39;s:27:"\x00App\Entity\Permission\x00code";s:14:"COMPONENT_VIEW";s:27:"\x00App\Entity\Permission\x00name";s:35:"Voir les détails d'une composante.";s:34:"\x00App\Entity\Permission\x00description";N;s:28:"\x00App\Entity\Permission\x00roles";O:33:"Doctrine\ORM\PersistentCollection":2:{s:13:"\x00*\x00collection";O:43:"Doctrine\Common\Collections\ArrayCollection":1:{s:53:"\x00Doctrine\Common\Collections\ArrayCollection\x00elements";a:0:{}}s:14:"\x00*\x00initialized";b:0;}s:38:"\x00App\Entity\Permission\x00permissionGroup";r:293;s:12:"\x00*\x00createdAt";O:8:"DateTime":3:{s:4:"date";s:26:"2025-08-26 15:24:50.000000";s:13:"timezone_type";i:3;s:8:"timezone";s:12:"Europe/Paris";}s:12:"\x00*\x00updatedAt";O:8:"DateTime":3:{s:4:"date";s:26:"2025-08-26 15:24:50.000000";s:13:"timezone_type";i:3;s:8:"timezone";s:12:"Europe/Paris";}s:12:"\x00*\x00deletedAt";N;}i:12;O:21:"App\Entity\Permission":9:{s:25:"\x00App\Entity\Permission\x00id";i:40;s:27:"\x00App\Entity\Permission\x00code";s:14:"COMPONENT_EDIT";s:27:"\x00App\Entity\Permission\x00name";s:43:"Modifier les informations d'une composante.";s:34:"\x00App\Entity\Permission\x00description";N;s:28:"\x00App\Entity\Permission\x00roles";O:33:"Doctrine\ORM\PersistentCollection":2:{s:13:"\x00*\x00collection";O:43:"Doctrine\Common\Collections\ArrayCollection":1:{s:53:"\x00Doctrine\Common\Collections\ArrayCollection\x00elements";a:0:{}}s:14:"\x00*\x00initialized";b:0;}s:38:"\x00App\Entity\Permission\x00permissionGroup";r:293;s:12:"\x00*\x00createdAt";O:8:"DateTime":3:{s:4:"date";s:26:"2025-08-26 15:24:50.000000";s:13:"timezone_type";i:3;s:8:"timezone";s:12:"Europe/Paris";}s:12:"\x00*\x00updatedAt";O:8:"DateTime":3:{s:4:"date";s:26:"2025-08-26 15:24:50.000000";s:13:"timezone_type";i:3;s:8:"timezone";s:12:"Europe/Paris";}s:12:"\x00*\x00deletedAt";N;}i:13;O:21:"App\Entity\Permission":9:{s:25:"\x00App\Entity\Permission\x00id";i:41;s:27:"\x00App\Entity\Permission\x00code";s:16:"COMPONENT_DELETE";s:27:"\x00App\Entity\Permission\x00name";s:25:"Supprimer une composante.";s:34:"\x00App\Entity\Permission\x00description";N;s:28:"\x00App\Entity\Permission\x00roles";O:33:"Doctrine\ORM\PersistentCollection":2:{s:13:"\x00*\x00collection";O:43:"Doctrine\Common\Collections\ArrayCollection":1:{s:53:"\x00Doctrine\Common\Collections\ArrayCollection\x00elements";a:0:{}}s:14:"\x00*\x00initialized";b:0;}s:38:"\x00App\Entity\Permission\x00permissionGroup";r:293;s:12:"\x00*\x00createdAt";O:8:"DateTime":3:{s:4:"date";s:26:"2025-08-26 15:24:50.000000";s:13:"timezone_type";i:3;s:8:"timezone";s:12:"Europe/Paris";}s:12:"\x00*\x00updatedAt";O:8:"DateTime":3:{s:4:"date";s:26:"2025-08-26 15:24:50.000000";s:13:"timezone_type";i:3;s:8:"timezone";s:12:"Europe/Paris";}s:12:"\x00*\x00deletedAt";N;}i:14;O:21:"App\Entity\Permission":9:{s:25:"\x00App\Entity\Permission\x00id";i:42;s:27:"\x00App\Entity\Permission\x00code";s:17:"COMPONENT_ARCHIVE";s:27:"\x00App\Entity\Permission\x00name";s:24:"Archiver une composante.";s:34:"\x00App\Entity\Permission\x00description";N;s:28:"\x00App\Entity\Permission\x00roles";O:33:"Doctrine\ORM\PersistentCollection":2:{s:13:"\x00*\x00collection";O:43:"Doctrine\Common\Collections\ArrayCollection":1:{s:53:"\x00Doctrine\Common\Collections\ArrayCollection\x00elements";a:0:{}}s:14:"\x00*\x00initialized";b:0;}s:38:"\x00App\Entity\Permission\x00permissionGroup";r:293;s:12:"\x00*\x00createdAt";O:8:"DateTime":3:{s:4:"date";s:26:"2025-08-26 15:24:50.000000";s:13:"timezone_type";i:3;s:8:"timezone";s:12:"Europe/Paris";}s:12:"\x00*\x00updatedAt";O:8:"DateTime":3:{s:4:"date";s:26:"2025-08-26 15:24:50.000000";s:13:"timezone_type";i:3;s:8:"timezone";s:12:"Europe/Paris";}s:12:"\x00*\x00deletedAt";N;}i:15;O:21:"App\Entity\Permission":9:{s:25:"\x00App\Entity\Permission\x00id";i:45;s:27:"\x00App\Entity\Permission\x00code";s:21:"ACTIVITY_PROJECT_LIST";s:27:"\x00App\Entity\Permission\x00name";s:37:"Lister tous les activités du projet.";s:34:"\x00App\Entity\Permission\x00description";N;s:28:"\x00App\Entity\Permission\x00roles";O:33:"Doctrine\ORM\PersistentCollection":2:{s:13:"\x00*\x00collection";O:43:"Doctrine\Common\Collections\ArrayCollection":1:{s:53:"\x00Doctrine\Common\Collections\ArrayCollection\x00elements";a:0:{}}s:14:"\x00*\x00initialized";b:0;}s:38:"\x00App\Entity\Permission\x00permissionGroup";O:41:"Proxies\__CG__\App\Entity\PermissionGroup":1:{s:30:"\x00App\Entity\PermissionGroup\x00id";i:8;}s:12:"\x00*\x00createdAt";O:8:"DateTime":3:{s:4:"date";s:26:"2025-08-26 15:24:50.000000";s:13:"timezone_type";i:3;s:8:"timezone";s:12:"Europe/Paris";}s:12:"\x00*\x00updatedAt";O:8:"DateTime":3:{s:4:"date";s:26:"2025-08-26 15:24:50.000000";s:13:"timezone_type";i:3;s:8:"timezone";s:12:"Europe/Paris";}s:12:"\x00*\x00deletedAt";N;}i:16;O:21:"App\Entity\Permission":9:{s:25:"\x00App\Entity\Permission\x00id";i:46;s:27:"\x00App\Entity\Permission\x00code";s:23:"ACTIVITY_COMPONENT_LIST";s:27:"\x00App\Entity\Permission\x00name";s:42:"Lister tous les activités du composannte.";s:34:"\x00App\Entity\Permission\x00description";N;s:28:"\x00App\Entity\Permission\x00roles";O:33:"Doctrine\ORM\PersistentCollection":2:{s:13:"\x00*\x00collection";O:43:"Doctrine\Common\Collections\ArrayCollection":1:{s:53:"\x00Doctrine\Common\Collections\ArrayCollection\x00elements";a:0:{}}s:14:"\x00*\x00initialized";b:0;}s:38:"\x00App\Entity\Permission\x00permissionGroup";r:408;s:12:"\x00*\x00createdAt";O:8:"DateTime":3:{s:4:"date";s:26:"2025-08-26 15:24:50.000000";s:13:"timezone_type";i:3;s:8:"timezone";s:12:"Europe/Paris";}s:12:"\x00*\x00updatedAt";O:8:"DateTime":3:{s:4:"date";s:26:"2025-08-26 15:24:50.000000";s:13:"timezone_type";i:3;s:8:"timezone";s:12:"Europe/Paris";}s:12:"\x00*\x00deletedAt";N;}i:17;O:21:"App\Entity\Permission":9:{s:25:"\x00App\Entity\Permission\x00id";i:47;s:27:"\x00App\Entity\Permission\x00code";s:15:"ACTIVITY_CREATE";s:27:"\x00App\Entity\Permission\x00name";s:30:"Créer une nouvelle activité.";s:34:"\x00App\Entity\Permission\x00description";N;s:28:"\x00App\Entity\Permission\x00roles";O:33:"Doctrine\ORM\PersistentCollection":2:{s:13:"\x00*\x00collection";O:43:"Doctrine\Common\Collections\ArrayCollection":1:{s:53:"\x00Doctrine\Common\Collections\ArrayCollection\x00elements";a:0:{}}s:14:"\x00*\x00initialized";b:0;}s:38:"\x00App\Entity\Permission\x00permissionGroup";r:408;s:12:"\x00*\x00createdAt";O:8:"DateTime":3:{s:4:"date";s:26:"2025-08-26 15:24:50.000000";s:13:"timezone_type";i:3;s:8:"timezone";s:12:"Europe/Paris";}s:12:"\x00*\x00updatedAt";O:8:"DateTime":3:{s:4:"date";s:26:"2025-08-26 15:24:50.000000";s:13:"timezone_type";i:3;s:8:"timezone";s:12:"Europe/Paris";}s:12:"\x00*\x00deletedAt";N;}i:18;O:21:"App\Entity\Permission":9:{s:25:"\x00App\Entity\Permission\x00id";i:48;s:27:"\x00App\Entity\Permission\x00code";s:13:"ACTIVITY_VIEW";s:27:"\x00App\Entity\Permission\x00name";s:34:"Voir les détails d'une activité.";s:34:"\x00App\Entity\Permission\x00description";N;s:28:"\x00App\Entity\Permission\x00roles";O:33:"Doctrine\ORM\PersistentCollection":2:{s:13:"\x00*\x00collection";O:43:"Doctrine\Common\Collections\ArrayCollection":1:{s:53:"\x00Doctrine\Common\Collections\ArrayCollection\x00elements";a:0:{}}s:14:"\x00*\x00initialized";b:0;}s:38:"\x00App\Entity\Permission\x00permissionGroup";r:408;s:12:"\x00*\x00createdAt";O:8:"DateTime":3:{s:4:"date";s:26:"2025-08-26 15:24:50.000000";s:13:"timezone_type";i:3;s:8:"timezone";s:12:"Europe/Paris";}s:12:"\x00*\x00updatedAt";O:8:"DateTime":3:{s:4:"date";s:26:"2025-08-26 15:24:50.000000";s:13:"timezone_type";i:3;s:8:"timezone";s:12:"Europe/Paris";}s:12:"\x00*\x00deletedAt";N;}i:19;O:21:"App\Entity\Permission":9:{s:25:"\x00App\Entity\Permission\x00id";i:49;s:27:"\x00App\Entity\Permission\x00code";s:13:"ACTIVITY_EDIT";s:27:"\x00App\Entity\Permission\x00name";s:42:"Modifier les informations d'une activité.";s:34:"\x00App\Entity\Permission\x00description";N;s:28:"\x00App\Entity\Permission\x00roles";O:33:"Doctrine\ORM\PersistentCollection":2:{s:13:"\x00*\x00collection";O:43:"Doctrine\Common\Collections\ArrayCollection":1:{s:53:"\x00Doctrine\Common\Collections\ArrayCollection\x00elements";a:0:{}}s:14:"\x00*\x00initialized";b:0;}s:38:"\x00App\Entity\Permission\x00permissionGroup";r:408;s:12:"\x00*\x00createdAt";O:8:"DateTime":3:{s:4:"date";s:26:"2025-08-26 15:24:50.000000";s:13:"timezone_type";i:3;s:8:"timezone";s:12:"Europe/Paris";}s:12:"\x00*\x00updatedAt";O:8:"DateTime":3:{s:4:"date";s:26:"2025-08-26 15:24:50.000000";s:13:"timezone_type";i:3;s:8:"timezone";s:12:"Europe/Paris";}s:12:"\x00*\x00deletedAt";N;}i:20;O:21:"App\Entity\Permission":9:{s:25:"\x00App\Entity\Permission\x00id";i:50;s:27:"\x00App\Entity\Permission\x00code";s:15:"ACTIVITY_DELETE";s:27:"\x00App\Entity\Permission\x00name";s:24:"Supprimer une activité.";s:34:"\x00App\Entity\Permission\x00description";N;s:28:"\x00App\Entity\Permission\x00roles";O:33:"Doctrine\ORM\PersistentCollection":2:{s:13:"\x00*\x00collection";O:43:"Doctrine\Common\Collections\ArrayCollection":1:{s:53:"\x00Doctrine\Common\Collections\ArrayCollection\x00elements";a:0:{}}s:14:"\x00*\x00initialized";b:0;}s:38:"\x00App\Entity\Permission\x00permissionGroup";r:408;s:12:"\x00*\x00createdAt";O:8:"DateTime":3:{s:4:"date";s:26:"2025-08-26 15:24:50.000000";s:13:"timezone_type";i:3;s:8:"timezone";s:12:"Europe/Paris";}s:12:"\x00*\x00updatedAt";O:8:"DateTime":3:{s:4:"date";s:26:"2025-08-26 15:24:50.000000";s:13:"timezone_type";i:3;s:8:"timezone";s:12:"Europe/Paris";}s:12:"\x00*\x00deletedAt";N;}i:21;O:21:"App\Entity\Permission":9:{s:25:"\x00App\Entity\Permission\x00id";i:51;s:27:"\x00App\Entity\Permission\x00code";s:16:"ACTIVITY_ARCHIVE";s:27:"\x00App\Entity\Permission\x00name";s:23:"Archiver une activité.";s:34:"\x00App\Entity\Permission\x00description";N;s:28:"\x00App\Entity\Permission\x00roles";O:33:"Doctrine\ORM\PersistentCollection":2:{s:13:"\x00*\x00collection";O:43:"Doctrine\Common\Collections\ArrayCollection":1:{s:53:"\x00Doctrine\Common\Collections\ArrayCollection\x00elements";a:0:{}}s:14:"\x00*\x00initialized";b:0;}s:38:"\x00App\Entity\Permission\x00permissionGroup";r:408;s:12:"\x00*\x00createdAt";O:8:"DateTime":3:{s:4:"date";s:26:"2025-08-26 15:24:50.000000";s:13:"timezone_type";i:3;s:8:"timezone";s:12:"Europe/Paris";}s:12:"\x00*\x00updatedAt";O:8:"DateTime":3:{s:4:"date";s:26:"2025-08-26 15:24:50.000000";s:13:"timezone_type";i:3;s:8:"timezone";s:12:"Europe/Paris";}s:12:"\x00*\x00deletedAt";N;}i:22;O:21:"App\Entity\Permission":9:{s:25:"\x00App\Entity\Permission\x00id";i:52;s:27:"\x00App\Entity\Permission\x00code";s:13:"DOCUMENT_LIST";s:27:"\x00App\Entity\Permission\x00name";s:20:"Lister les documents";s:34:"\x00App\Entity\Permission\x00description";N;s:28:"\x00App\Entity\Permission\x00roles";O:33:"Doctrine\ORM\PersistentCollection":2:{s:13:"\x00*\x00collection";O:43:"Doctrine\Common\Collections\ArrayCollection":1:{s:53:"\x00Doctrine\Common\Collections\ArrayCollection\x00elements";a:0:{}}s:14:"\x00*\x00initialized";b:0;}s:38:"\x00App\Entity\Permission\x00permissionGroup";O:41:"Proxies\__CG__\App\Entity\PermissionGroup":1:{s:30:"\x00App\Entity\PermissionGroup\x00id";i:9;}s:12:"\x00*\x00createdAt";O:8:"DateTime":3:{s:4:"date";s:26:"2025-08-26 15:24:50.000000";s:13:"timezone_type";i:3;s:8:"timezone";s:12:"Europe/Paris";}s:12:"\x00*\x00updatedAt";O:8:"DateTime":3:{s:4:"date";s:26:"2025-11-02 17:41:13.000000";s:13:"timezone_type";i:3;s:8:"timezone";s:12:"Europe/Paris";}s:12:"\x00*\x00deletedAt";N;}i:23;O:21:"App\Entity\Permission":9:{s:25:"\x00App\Entity\Permission\x00id";i:53;s:27:"\x00App\Entity\Permission\x00code";s:15:"DOCUMENT_UPLOAD";s:27:"\x00App\Entity\Permission\x00name";s:19:"Uploader un fichier";s:34:"\x00App\Entity\Permission\x00description";N;s:28:"\x00App\Entity\Permission\x00roles";O:33:"Doctrine\ORM\PersistentCollection":2:{s:13:"\x00*\x00collection";O:43:"Doctrine\Common\Collections\ArrayCollection":1:{s:53:"\x00Doctrine\Common\Collections\ArrayCollection\x00elements";a:0:{}}s:14:"\x00*\x00initialized";b:0;}s:38:"\x00App\Entity\Permission\x00permissionGroup";r:542;s:12:"\x00*\x00createdAt";O:8:"DateTime":3:{s:4:"date";s:26:"2025-08-26 15:24:50.000000";s:13:"timezone_type";i:3;s:8:"timezone";s:12:"Europe/Paris";}s:12:"\x00*\x00updatedAt";O:8:"DateTime":3:{s:4:"date";s:26:"2025-08-26 15:24:50.000000";s:13:"timezone_type";i:3;s:8:"timezone";s:12:"Europe/Paris";}s:12:"\x00*\x00deletedAt";N;}i:24;O:21:"App\Entity\Permission":9:{s:25:"\x00App\Entity\Permission\x00id";i:54;s:27:"\x00App\Entity\Permission\x00code";s:17:"DOCUMENT_DOWNLOAD";s:27:"\x00App\Entity\Permission\x00name";s:24:"Télécharger un fichier";s:34:"\x00App\Entity\Permission\x00description";N;s:28:"\x00App\Entity\Permission\x00roles";O:33:"Doctrine\ORM\PersistentCollection":2:{s:13:"\x00*\x00collection";O:43:"Doctrine\Common\Collections\ArrayCollection":1:{s:53:"\x00Doctrine\Common\Collections\ArrayCollection\x00elements";a:0:{}}s:14:"\x00*\x00initialized";b:0;}s:38:"\x00App\Entity\Permission\x00permissionGroup";r:542;s:12:"\x00*\x00createdAt";O:8:"DateTime":3:{s:4:"date";s:26:"2025-08-26 15:24:50.000000";s:13:"timezone_type";i:3;s:8:"timezone";s:12:"Europe/Paris";}s:12:"\x00*\x00updatedAt";O:8:"DateTime":3:{s:4:"date";s:26:"2025-08-26 15:24:50.000000";s:13:"timezone_type";i:3;s:8:"timezone";s:12:"Europe/Paris";}s:12:"\x00*\x00deletedAt";N;}i:25;O:21:"App\Entity\Permission":9:{s:25:"\x00App\Entity\Permission\x00id";i:55;s:27:"\x00App\Entity\Permission\x00code";s:15:"DOCUMENT_DELETE";s:27:"\x00App\Entity\Permission\x00name";s:20:"Supprimer un fichier";s:34:"\x00App\Entity\Permission\x00description";N;s:28:"\x00App\Entity\Permission\x00roles";O:33:"Doctrine\ORM\PersistentCollection":2:{s:13:"\x00*\x00collection";O:43:"Doctrine\Common\Collections\ArrayCollection":1:{s:53:"\x00Doctrine\Common\Collections\ArrayCollection\x00elements";a:0:{}}s:14:"\x00*\x00initialized";b:0;}s:38:"\x00App\Entity\Permission\x00permissionGroup";r:542;s:12:"\x00*\x00createdAt";O:8:"DateTime":3:{s:4:"date";s:26:"2025-08-26 15:24:50.000000";s:13:"timezone_type";i:3;s:8:"timezone";s:12:"Europe/Paris";}s:12:"\x00*\x00updatedAt";O:8:"DateTime":3:{s:4:"date";s:26:"2025-08-26 15:24:50.000000";s:13:"timezone_type";i:3;s:8:"timezone";s:12:"Europe/Paris";}s:12:"\x00*\x00deletedAt";N;}i:26;O:21:"App\Entity\Permission":9:{s:25:"\x00App\Entity\Permission\x00id";i:56;s:27:"\x00App\Entity\Permission\x00code";s:16:"STAKEHOLDER_LIST";s:27:"\x00App\Entity\Permission\x00name";s:28:"Lister les parties prenantes";s:34:"\x00App\Entity\Permission\x00description";N;s:28:"\x00App\Entity\Permission\x00roles";O:33:"Doctrine\ORM\PersistentCollection":2:{s:13:"\x00*\x00collection";O:43:"Doctrine\Common\Collections\ArrayCollection":1:{s:53:"\x00Doctrine\Common\Collections\ArrayCollection\x00elements";a:0:{}}s:14:"\x00*\x00initialized";b:0;}s:38:"\x00App\Entity\Permission\x00permissionGroup";O:41:"Proxies\__CG__\App\Entity\PermissionGroup":1:{s:30:"\x00App\Entity\PermissionGroup\x00id";i:10;}s:12:"\x00*\x00createdAt";O:8:"DateTime":3:{s:4:"date";s:26:"2025-08-26 15:24:50.000000";s:13:"timezone_type";i:3;s:8:"timezone";s:12:"Europe/Paris";}s:12:"\x00*\x00updatedAt";O:8:"DateTime":3:{s:4:"date";s:26:"2025-08-26 15:24:50.000000";s:13:"timezone_type";i:3;s:8:"timezone";s:12:"Europe/Paris";}s:12:"\x00*\x00deletedAt";N;}i:27;O:21:"App\Entity\Permission":9:{s:25:"\x00App\Entity\Permission\x00id";i:57;s:27:"\x00App\Entity\Permission\x00code";s:18:"STAKEHOLDER_CREATE";s:27:"\x00App\Entity\Permission\x00name";s:36:"Créer une nouvelle partie prenante.";s:34:"\x00App\Entity\Permission\x00description";N;s:28:"\x00App\Entity\Permission\x00roles";O:33:"Doctrine\ORM\PersistentCollection":2:{s:13:"\x00*\x00collection";O:43:"Doctrine\Common\Collections\ArrayCollection":1:{s:53:"\x00Doctrine\Common\Collections\ArrayCollection\x00elements";a:0:{}}s:14:"\x00*\x00initialized";b:0;}s:38:"\x00App\Entity\Permission\x00permissionGroup";r:619;s:12:"\x00*\x00createdAt";O:8:"DateTime":3:{s:4:"date";s:26:"2025-08-26 15:24:50.000000";s:13:"timezone_type";i:3;s:8:"timezone";s:12:"Europe/Paris";}s:12:"\x00*\x00updatedAt";O:8:"DateTime":3:{s:4:"date";s:26:"2025-08-26 15:24:50.000000";s:13:"timezone_type";i:3;s:8:"timezone";s:12:"Europe/Paris";}s:12:"\x00*\x00deletedAt";N;}i:28;O:21:"App\Entity\Permission":9:{s:25:"\x00App\Entity\Permission\x00id";i:58;s:27:"\x00App\Entity\Permission\x00code";s:16:"STAKEHOLDER_VIEW";s:27:"\x00App\Entity\Permission\x00name";s:40:"Voir les détails d'une partie prenante.";s:34:"\x00App\Entity\Permission\x00description";N;s:28:"\x00App\Entity\Permission\x00roles";O:33:"Doctrine\ORM\PersistentCollection":2:{s:13:"\x00*\x00collection";O:43:"Doctrine\Common\Collections\ArrayCollection":1:{s:53:"\x00Doctrine\Common\Collections\ArrayCollection\x00elements";a:0:{}}s:14:"\x00*\x00initialized";b:0;}s:38:"\x00App\Entity\Permission\x00permissionGroup";r:619;s:12:"\x00*\x00createdAt";O:8:"DateTime":3:{s:4:"date";s:26:"2025-08-26 15:24:50.000000";s:13:"timezone_type";i:3;s:8:"timezone";s:12:"Europe/Paris";}s:12:"\x00*\x00updatedAt";O:8:"DateTime":3:{s:4:"date";s:26:"2025-08-26 15:24:50.000000";s:13:"timezone_type";i:3;s:8:"timezone";s:12:"Europe/Paris";}s:12:"\x00*\x00deletedAt";N;}i:29;O:21:"App\Entity\Permission":9:{s:25:"\x00App\Entity\Permission\x00id";i:59;s:27:"\x00App\Entity\Permission\x00code";s:16:"STAKEHOLDER_EDIT";s:27:"\x00App\Entity\Permission\x00name";s:48:"Modifier les informations d'une partie prenante.";s:34:"\x00App\Entity\Permission\x00description";N;s:28:"\x00App\Entity\Permission\x00roles";O:33:"Doctrine\ORM\PersistentCollection":2:{s:13:"\x00*\x00collection";O:43:"Doctrine\Common\Collections\ArrayCollection":1:{s:53:"\x00Doctrine\Common\Collections\ArrayCollection\x00elements";a:0:{}}s:14:"\x00*\x00initialized";b:0;}s:38:"\x00App\Entity\Permission\x00permissionGroup";r:619;s:12:"\x00*\x00createdAt";O:8:"DateTime":3:{s:4:"date";s:26:"2025-08-26 15:24:50.000000";s:13:"timezone_type";i:3;s:8:"timezone";s:12:"Europe/Paris";}s:12:"\x00*\x00updatedAt";O:8:"DateTime":3:{s:4:"date";s:26:"2025-08-26 15:24:50.000000";s:13:"timezone_type";i:3;s:8:"timezone";s:12:"Europe/Paris";}s:12:"\x00*\x00deletedAt";N;}i:30;O:21:"App\Entity\Permission":9:{s:25:"\x00App\Entity\Permission\x00id";i:60;s:27:"\x00App\Entity\Permission\x00code";s:18:"STAKEHOLDER_DELETE";s:27:"\x00App\Entity\Permission\x00name";s:30:"Supprimer une partie prenante.";s:34:"\x00App\Entity\Permission\x00description";N;s:28:"\x00App\Entity\Permission\x00roles";O:33:"Doctrine\ORM\PersistentCollection":2:{s:13:"\x00*\x00collection";O:43:"Doctrine\Common\Collections\ArrayCollection":1:{s:53:"\x00Doctrine\Common\Collections\ArrayCollection\x00elements";a:0:{}}s:14:"\x00*\x00initialized";b:0;}s:38:"\x00App\Entity\Permission\x00permissionGroup";r:619;s:12:"\x00*\x00createdAt";O:8:"DateTime":3:{s:4:"date";s:26:"2025-08-26 15:24:50.000000";s:13:"timezone_type";i:3;s:8:"timezone";s:12:"Europe/Paris";}s:12:"\x00*\x00updatedAt";O:8:"DateTime":3:{s:4:"date";s:26:"2025-08-26 15:24:50.000000";s:13:"timezone_type";i:3;s:8:"timezone";s:12:"Europe/Paris";}s:12:"\x00*\x00deletedAt";N;}i:31;O:21:"App\Entity\Permission":9:{s:25:"\x00App\Entity\Permission\x00id";i:61;s:27:"\x00App\Entity\Permission\x00code";s:16:"BUDGET_LINE_LIST";s:27:"\x00App\Entity\Permission\x00name";s:31:"Lister des lignes budgétaires.";s:34:"\x00App\Entity\Permission\x00description";N;s:28:"\x00App\Entity\Permission\x00roles";O:33:"Doctrine\ORM\PersistentCollection":2:{s:13:"\x00*\x00collection";O:43:"Doctrine\Common\Collections\ArrayCollection":1:{s:53:"\x00Doctrine\Common\Collections\ArrayCollection\x00elements";a:0:{}}s:14:"\x00*\x00initialized";b:0;}s:38:"\x00App\Entity\Permission\x00permissionGroup";O:41:"Proxies\__CG__\App\Entity\PermissionGroup":1:{s:30:"\x00App\Entity\PermissionGroup\x00id";i:11;}s:12:"\x00*\x00createdAt";O:8:"DateTime":3:{s:4:"date";s:26:"2025-08-26 15:24:50.000000";s:13:"timezone_type";i:3;s:8:"timezone";s:12:"Europe/Paris";}s:12:"\x00*\x00updatedAt";O:8:"DateTime":3:{s:4:"date";s:26:"2025-08-26 15:24:50.000000";s:13:"timezone_type";i:3;s:8:"timezone";s:12:"Europe/Paris";}s:12:"\x00*\x00deletedAt";N;}i:32;O:21:"App\Entity\Permission":9:{s:25:"\x00App\Entity\Permission\x00id";i:62;s:27:"\x00App\Entity\Permission\x00code";s:18:"BUDGET_LINE_CREATE";s:27:"\x00App\Entity\Permission\x00name";s:29:"Créer une ligne budgétaire.";s:34:"\x00App\Entity\Permission\x00description";N;s:28:"\x00App\Entity\Permission\x00roles";O:33:"Doctrine\ORM\PersistentCollection":2:{s:13:"\x00*\x00collection";O:43:"Doctrine\Common\Collections\ArrayCollection":1:{s:53:"\x00Doctrine\Common\Collections\ArrayCollection\x00elements";a:0:{}}s:14:"\x00*\x00initialized";b:0;}s:38:"\x00App\Entity\Permission\x00permissionGroup";r:715;s:12:"\x00*\x00createdAt";O:8:"DateTime":3:{s:4:"date";s:26:"2025-08-26 15:24:50.000000";s:13:"timezone_type";i:3;s:8:"timezone";s:12:"Europe/Paris";}s:12:"\x00*\x00updatedAt";O:8:"DateTime":3:{s:4:"date";s:26:"2025-08-26 15:24:50.000000";s:13:"timezone_type";i:3;s:8:"timezone";s:12:"Europe/Paris";}s:12:"\x00*\x00deletedAt";N;}i:33;O:21:"App\Entity\Permission":9:{s:25:"\x00App\Entity\Permission\x00id";i:63;s:27:"\x00App\Entity\Permission\x00code";s:18:"BUDGET_LINE_UPDATE";s:27:"\x00App\Entity\Permission\x00name";s:31:"Modifier une ligne budgétaire.";s:34:"\x00App\Entity\Permission\x00description";N;s:28:"\x00App\Entity\Permission\x00roles";O:33:"Doctrine\ORM\PersistentCollection":2:{s:13:"\x00*\x00collection";O:43:"Doctrine\Common\Collections\ArrayCollection":1:{s:53:"\x00Doctrine\Common\Collections\ArrayCollection\x00elements";a:0:{}}s:14:"\x00*\x00initialized";b:0;}s:38:"\x00App\Entity\Permission\x00permissionGroup";r:715;s:12:"\x00*\x00createdAt";O:8:"DateTime":3:{s:4:"date";s:26:"2025-08-26 15:24:50.000000";s:13:"timezone_type";i:3;s:8:"timezone";s:12:"Europe/Paris";}s:12:"\x00*\x00updatedAt";O:8:"DateTime":3:{s:4:"date";s:26:"2025-08-26 15:24:50.000000";s:13:"timezone_type";i:3;s:8:"timezone";s:12:"Europe/Paris";}s:12:"\x00*\x00deletedAt";N;}i:34;O:21:"App\Entity\Permission":9:{s:25:"\x00App\Entity\Permission\x00id";i:64;s:27:"\x00App\Entity\Permission\x00code";s:18:"BUDGET_LINE_DELETE";s:27:"\x00App\Entity\Permission\x00name";s:32:"Supprimer une ligne budgétaire.";s:34:"\x00App\Entity\Permission\x00description";N;s:28:"\x00App\Entity\Permission\x00roles";O:33:"Doctrine\ORM\PersistentCollection":2:{s:13:"\x00*\x00collection";O:43:"Doctrine\Common\Collections\ArrayCollection":1:{s:53:"\x00Doctrine\Common\Collections\ArrayCollection\x00elements";a:0:{}}s:14:"\x00*\x00initialized";b:0;}s:38:"\x00App\Entity\Permission\x00permissionGroup";r:715;s:12:"\x00*\x00createdAt";O:8:"DateTime":3:{s:4:"date";s:26:"2025-08-26 15:24:50.000000";s:13:"timezone_type";i:3;s:8:"timezone";s:12:"Europe/Paris";}s:12:"\x00*\x00updatedAt";O:8:"DateTime":3:{s:4:"date";s:26:"2025-08-26 15:24:50.000000";s:13:"timezone_type";i:3;s:8:"timezone";s:12:"Europe/Paris";}s:12:"\x00*\x00deletedAt";N;}i:35;O:21:"App\Entity\Permission":9:{s:25:"\x00App\Entity\Permission\x00id";i:67;s:27:"\x00App\Entity\Permission\x00code";s:22:"ORGANIZATION_DASHBOARD";s:27:"\x00App\Entity\Permission\x00name";s:35:"Tableau de board de l'organisation.";s:34:"\x00App\Entity\Permission\x00description";N;s:28:"\x00App\Entity\Permission\x00roles";O:33:"Doctrine\ORM\PersistentCollection":2:{s:13:"\x00*\x00collection";O:43:"Doctrine\Common\Collections\ArrayCollection":1:{s:53:"\x00Doctrine\Common\Collections\ArrayCollection\x00elements";a:0:{}}s:14:"\x00*\x00initialized";b:0;}s:38:"\x00App\Entity\Permission\x00permissionGroup";r:216;s:12:"\x00*\x00createdAt";O:8:"DateTime":3:{s:4:"date";s:26:"2025-11-02 17:41:13.000000";s:13:"timezone_type";i:3;s:8:"timezone";s:12:"Europe/Paris";}s:12:"\x00*\x00updatedAt";O:8:"DateTime":3:{s:4:"date";s:26:"2025-11-02 17:41:13.000000";s:13:"timezone_type";i:3;s:8:"timezone";s:12:"Europe/Paris";}s:12:"\x00*\x00deletedAt";N;}i:36;O:21:"App\Entity\Permission":9:{s:25:"\x00App\Entity\Permission\x00id";i:68;s:27:"\x00App\Entity\Permission\x00code";s:27:"DASHBOARD_ORGANIZATION_VIEW";s:27:"\x00App\Entity\Permission\x00name";s:34:"Tableau de bord de l'organisation.";s:34:"\x00App\Entity\Permission\x00description";N;s:28:"\x00App\Entity\Permission\x00roles";O:33:"Doctrine\ORM\PersistentCollection":2:{s:13:"\x00*\x00collection";O:43:"Doctrine\Common\Collections\ArrayCollection":1:{s:53:"\x00Doctrine\Common\Collections\ArrayCollection\x00elements";a:0:{}}s:14:"\x00*\x00initialized";b:0;}s:38:"\x00App\Entity\Permission\x00permissionGroup";O:41:"Proxies\__CG__\App\Entity\PermissionGroup":1:{s:30:"\x00App\Entity\PermissionGroup\x00id";i:13;}s:12:"\x00*\x00createdAt";O:8:"DateTime":3:{s:4:"date";s:26:"2025-11-02 17:41:13.000000";s:13:"timezone_type";i:3;s:8:"timezone";s:12:"Europe/Paris";}s:12:"\x00*\x00updatedAt";O:8:"DateTime":3:{s:4:"date";s:26:"2025-11-02 17:41:13.000000";s:13:"timezone_type";i:3;s:8:"timezone";s:12:"Europe/Paris";}s:12:"\x00*\x00deletedAt";N;}i:37;O:21:"App\Entity\Permission":9:{s:25:"\x00App\Entity\Permission\x00id";i:69;s:27:"\x00App\Entity\Permission\x00code";s:25:"DASHBOARD_DEPARTMENT_VIEW";s:27:"\x00App\Entity\Permission\x00name";s:31:"Tableau de bord du départment.";s:34:"\x00App\Entity\Permission\x00description";N;s:28:"\x00App\Entity\Permission\x00roles";O:33:"Doctrine\ORM\PersistentCollection":2:{s:13:"\x00*\x00collection";O:43:"Doctrine\Common\Collections\ArrayCollection":1:{s:53:"\x00Doctrine\Common\Collections\ArrayCollection\x00elements";a:0:{}}s:14:"\x00*\x00initialized";b:0;}s:38:"\x00App\Entity\Permission\x00permissionGroup";r:811;s:12:"\x00*\x00createdAt";O:8:"DateTime":3:{s:4:"date";s:26:"2025-11-02 17:41:13.000000";s:13:"timezone_type";i:3;s:8:"timezone";s:12:"Europe/Paris";}s:12:"\x00*\x00updatedAt";O:8:"DateTime":3:{s:4:"date";s:26:"2025-11-02 17:41:13.000000";s:13:"timezone_type";i:3;s:8:"timezone";s:12:"Europe/Paris";}s:12:"\x00*\x00deletedAt";N;}i:38;O:21:"App\Entity\Permission":9:{s:25:"\x00App\Entity\Permission\x00id";i:70;s:27:"\x00App\Entity\Permission\x00code";s:22:"DASHBOARD_PROJECT_VIEW";s:27:"\x00App\Entity\Permission\x00name";s:26:"Tableau de bord du projet.";s:34:"\x00App\Entity\Permission\x00description";N;s:28:"\x00App\Entity\Permission\x00roles";O:33:"Doctrine\ORM\PersistentCollection":2:{s:13:"\x00*\x00collection";O:43:"Doctrine\Common\Collections\ArrayCollection":1:{s:53:"\x00Doctrine\Common\Collections\ArrayCollection\x00elements";a:0:{}}s:14:"\x00*\x00initialized";b:0;}s:38:"\x00App\Entity\Permission\x00permissionGroup";r:811;s:12:"\x00*\x00createdAt";O:8:"DateTime":3:{s:4:"date";s:26:"2025-11-02 17:41:13.000000";s:13:"timezone_type";i:3;s:8:"timezone";s:12:"Europe/Paris";}s:12:"\x00*\x00updatedAt";O:8:"DateTime":3:{s:4:"date";s:26:"2025-11-02 17:41:13.000000";s:13:"timezone_type";i:3;s:8:"timezone";s:12:"Europe/Paris";}s:12:"\x00*\x00deletedAt";N;}i:39;O:21:"App\Entity\Permission":9:{s:25:"\x00App\Entity\Permission\x00id";i:71;s:27:"\x00App\Entity\Permission\x00code";s:13:"CALENDAR_VIEW";s:27:"\x00App\Entity\Permission\x00name";s:41:"Visualiser le calendrier des événements";s:34:"\x00App\Entity\Permission\x00description";N;s:28:"\x00App\Entity\Permission\x00roles";O:33:"Doctrine\ORM\PersistentCollection":2:{s:13:"\x00*\x00collection";O:43:"Doctrine\Common\Collections\ArrayCollection":1:{s:53:"\x00Doctrine\Common\Collections\ArrayCollection\x00elements";a:0:{}}s:14:"\x00*\x00initialized";b:0;}s:38:"\x00App\Entity\Permission\x00permissionGroup";O:41:"Proxies\__CG__\App\Entity\PermissionGroup":1:{s:30:"\x00App\Entity\PermissionGroup\x00id";i:14;}s:12:"\x00*\x00createdAt";O:8:"DateTime":3:{s:4:"date";s:26:"2025-11-02 17:41:13.000000";s:13:"timezone_type";i:3;s:8:"timezone";s:12:"Europe/Paris";}s:12:"\x00*\x00updatedAt";O:8:"DateTime":3:{s:4:"date";s:26:"2025-11-02 17:41:13.000000";s:13:"timezone_type";i:3;s:8:"timezone";s:12:"Europe/Paris";}s:12:"\x00*\x00deletedAt";N;}}}s:14:"\x00*\x00initialized";b:1;}s:27:"\x00App\Entity\Role\x00department";N;s:29:"\x00App\Entity\Role\x00organization";N;s:22:"\x00App\Entity\Role\x00users";O:33:"Doctrine\ORM\PersistentCollection":2:{s:13:"\x00*\x00collection";O:43:"Doctrine\Common\Collections\ArrayCollection":1:{s:53:"\x00Doctrine\Common\Collections\ArrayCollection\x00elements";a:0:{}}s:14:"\x00*\x00initialized";b:0;}s:26:"\x00App\Entity\Role\x00isDefault";b:1;s:12:"\x00*\x00createdAt";O:8:"DateTime":3:{s:4:"date";s:26:"2025-08-26 15:24:34.000000";s:13:"timezone_type";i:3;s:8:"timezone";s:12:"Europe/Paris";}s:12:"\x00*\x00updatedAt";O:8:"DateTime":3:{s:4:"date";s:26:"2025-11-02 17:41:19.000000";s:13:"timezone_type";i:3;s:8:"timezone";s:12:"Europe/Paris";}s:12:"\x00*\x00deletedAt";N;}i:2;O:15:"App\Entity\Role":12:{s:19:"\x00App\Entity\Role\x00id";i:5;s:21:"\x00App\Entity\Role\x00code";s:20:"ROLE_PROJECT_MONITOR";s:21:"\x00App\Entity\Role\x00name";s:27:"Chargé de suivi de projet.";s:28:"\x00App\Entity\Role\x00description";N;s:28:"\x00App\Entity\Role\x00permissions";O:33:"Doctrine\ORM\PersistentCollection":2:{s:13:"\x00*\x00collection";O:43:"Doctrine\Common\Collections\ArrayCollection":1:{s:53:"\x00Doctrine\Common\Collections\ArrayCollection\x00elements";a:40:{i:0;r:84;i:1;r:130;i:2;r:150;i:3;r:169;i:4;r:188;i:5;r:207;i:6;r:227;i:7;r:246;i:8;r:265;i:9;r:284;i:10;r:304;i:11;r:323;i:12;r:342;i:13;r:361;i:14;r:380;i:15;r:399;i:16;r:419;i:17;r:438;i:18;r:457;i:19;r:476;i:20;r:495;i:21;r:514;i:22;r:533;i:23;r:553;i:24;r:572;i:25;r:591;i:26;r:610;i:27;r:630;i:28;r:649;i:29;r:668;i:30;r:687;i:31;r:706;i:32;r:726;i:33;r:745;i:34;r:764;i:35;r:783;i:36;r:802;i:37;r:822;i:38;r:841;i:39;r:860;}}s:14:"\x00*\x00initialized";b:1;}s:27:"\x00App\Entity\Role\x00department";N;s:29:"\x00App\Entity\Role\x00organization";N;s:22:"\x00App\Entity\Role\x00users";O:33:"Doctrine\ORM\PersistentCollection":2:{s:13:"\x00*\x00collection";O:43:"Doctrine\Common\Collections\ArrayCollection":1:{s:53:"\x00Doctrine\Common\Collections\ArrayCollection\x00elements";a:0:{}}s:14:"\x00*\x00initialized";b:0;}s:26:"\x00App\Entity\Role\x00isDefault";b:1;s:12:"\x00*\x00createdAt";O:8:"DateTime":3:{s:4:"date";s:26:"2025-08-26 15:24:34.000000";s:13:"timezone_type";i:3;s:8:"timezone";s:12:"Europe/Paris";}s:12:"\x00*\x00updatedAt";O:8:"DateTime":3:{s:4:"date";s:26:"2025-11-02 17:41:19.000000";s:13:"timezone_type";i:3;s:8:"timezone";s:12:"Europe/Paris";}s:12:"\x00*\x00deletedAt";N;}i:3;O:15:"App\Entity\Role":12:{s:19:"\x00App\Entity\Role\x00id";i:9;s:21:"\x00App\Entity\Role\x00code";s:20:"ROLE_PROJECT_MANAGER";s:21:"\x00App\Entity\Role\x00name";s:14:"Chef de projet";s:28:"\x00App\Entity\Role\x00description";s:32:"Chef de projet de chemins de Fer";s:28:"\x00App\Entity\Role\x00permissions";O:33:"Doctrine\ORM\PersistentCollection":2:{s:13:"\x00*\x00collection";O:43:"Doctrine\Common\Collections\ArrayCollection":1:{s:53:"\x00Doctrine\Common\Collections\ArrayCollection\x00elements";a:51:{i:0;O:21:"App\Entity\Permission":9:{s:25:"\x00App\Entity\Permission\x00id";i:1;s:27:"\x00App\Entity\Permission\x00code";s:17:"ORGANIZATION_EDIT";s:27:"\x00App\Entity\Permission\x00name";s:50:"Mettre à jour les informations de l'organisation.";s:34:"\x00App\Entity\Permission\x00description";N;s:28:"\x00App\Entity\Permission\x00roles";O:33:"Doctrine\ORM\PersistentCollection":2:{s:13:"\x00*\x00collection";O:43:"Doctrine\Common\Collections\ArrayCollection":1:{s:53:"\x00Doctrine\Common\Collections\ArrayCollection\x00elements";a:0:{}}s:14:"\x00*\x00initialized";b:0;}s:38:"\x00App\Entity\Permission\x00permissionGroup";O:41:"Proxies\__CG__\App\Entity\PermissionGroup":1:{s:30:"\x00App\Entity\PermissionGroup\x00id";i:1;}s:12:"\x00*\x00createdAt";O:8:"DateTime":3:{s:4:"date";s:26:"2025-08-26 15:24:50.000000";s:13:"timezone_type";i:3;s:8:"timezone";s:12:"Europe/Paris";}s:12:"\x00*\x00updatedAt";O:8:"DateTime":3:{s:4:"date";s:26:"2025-08-26 15:24:50.000000";s:13:"timezone_type";i:3;s:8:"timezone";s:12:"Europe/Paris";}s:12:"\x00*\x00deletedAt";N;}i:1;O:21:"App\Entity\Permission":9:{s:25:"\x00App\Entity\Permission\x00id";i:2;s:27:"\x00App\Entity\Permission\x00code";s:17:"ORGANIZATION_VIEW";s:27:"\x00App\Entity\Permission\x00name";s:40:"Voir les informations de l'organisation.";s:34:"\x00App\Entity\Permission\x00description";N;s:28:"\x00App\Entity\Permission\x00roles";O:33:"Doctrine\ORM\PersistentCollection":2:{s:13:"\x00*\x00collection";O:43:"Doctrine\Common\Collections\ArrayCollection":1:{s:53:"\x00Doctrine\Common\Collections\ArrayCollection\x00elements";a:0:{}}s:14:"\x00*\x00initialized";b:0;}s:38:"\x00App\Entity\Permission\x00permissionGroup";r:979;s:12:"\x00*\x00createdAt";O:8:"DateTime":3:{s:4:"date";s:26:"2025-08-26 15:24:50.000000";s:13:"timezone_type";i:3;s:8:"timezone";s:12:"Europe/Paris";}s:12:"\x00*\x00updatedAt";O:8:"DateTime":3:{s:4:"date";s:26:"2025-08-26 15:24:50.000000";s:13:"timezone_type";i:3;s:8:"timezone";s:12:"Europe/Paris";}s:12:"\x00*\x00deletedAt";N;}i:2;r:84;i:3;O:21:"App\Entity\Permission":9:{s:25:"\x00App\Entity\Permission\x00id";i:4;s:27:"\x00App\Entity\Permission\x00code";s:15:"DEPARTMENT_VIEW";s:27:"\x00App\Entity\Permission\x00name";s:36:"Voir les détails d'un département.";s:34:"\x00App\Entity\Permission\x00description";N;s:28:"\x00App\Entity\Permission\x00roles";O:33:"Doctrine\ORM\PersistentCollection":2:{s:13:"\x00*\x00collection";O:43:"Doctrine\Common\Collections\ArrayCollection":1:{s:53:"\x00Doctrine\Common\Collections\ArrayCollection\x00elements";a:0:{}}s:14:"\x00*\x00initialized";b:0;}s:38:"\x00App\Entity\Permission\x00permissionGroup";r:93;s:12:"\x00*\x00createdAt";O:8:"DateTime":3:{s:4:"date";s:26:"2025-08-26 15:24:50.000000";s:13:"timezone_type";i:3;s:8:"timezone";s:12:"Europe/Paris";}s:12:"\x00*\x00updatedAt";O:8:"DateTime":3:{s:4:"date";s:26:"2025-08-26 15:24:50.000000";s:13:"timezone_type";i:3;s:8:"timezone";s:12:"Europe/Paris";}s:12:"\x00*\x00deletedAt";N;}i:4;O:21:"App\Entity\Permission":9:{s:25:"\x00App\Entity\Permission\x00id";i:5;s:27:"\x00App\Entity\Permission\x00code";s:17:"DEPARTMENT_CREATE";s:27:"\x00App\Entity\Permission\x00name";s:31:"Créer un nouveau département.";s:34:"\x00App\Entity\Permission\x00description";N;s:28:"\x00App\Entity\Permission\x00roles";O:33:"Doctrine\ORM\PersistentCollection":2:{s:13:"\x00*\x00collection";O:43:"Doctrine\Common\Collections\ArrayCollection":1:{s:53:"\x00Doctrine\Common\Collections\ArrayCollection\x00elements";a:0:{}}s:14:"\x00*\x00initialized";b:0;}s:38:"\x00App\Entity\Permission\x00permissionGroup";r:93;s:12:"\x00*\x00createdAt";O:8:"DateTime":3:{s:4:"date";s:26:"2025-08-26 15:24:50.000000";s:13:"timezone_type";i:3;s:8:"timezone";s:12:"Europe/Paris";}s:12:"\x00*\x00updatedAt";O:8:"DateTime":3:{s:4:"date";s:26:"2025-08-26 15:24:50.000000";s:13:"timezone_type";i:3;s:8:"timezone";s:12:"Europe/Paris";}s:12:"\x00*\x00deletedAt";N;}i:5;O:21:"App\Entity\Permission":9:{s:25:"\x00App\Entity\Permission\x00id";i:6;s:27:"\x00App\Entity\Permission\x00code";s:15:"DEPARTMENT_EDIT";s:27:"\x00App\Entity\Permission\x00name";s:44:"Modifier les informations d'un département.";s:34:"\x00App\Entity\Permission\x00description";N;s:28:"\x00App\Entity\Permission\x00roles";O:33:"Doctrine\ORM\PersistentCollection":2:{s:13:"\x00*\x00collection";O:43:"Doctrine\Common\Collections\ArrayCollection":1:{s:53:"\x00Doctrine\Common\Collections\ArrayCollection\x00elements";a:0:{}}s:14:"\x00*\x00initialized";b:0;}s:38:"\x00App\Entity\Permission\x00permissionGroup";r:93;s:12:"\x00*\x00createdAt";O:8:"DateTime":3:{s:4:"date";s:26:"2025-08-26 15:24:50.000000";s:13:"timezone_type";i:3;s:8:"timezone";s:12:"Europe/Paris";}s:12:"\x00*\x00updatedAt";O:8:"DateTime":3:{s:4:"date";s:26:"2025-08-26 15:24:50.000000";s:13:"timezone_type";i:3;s:8:"timezone";s:12:"Europe/Paris";}s:12:"\x00*\x00deletedAt";N;}i:6;O:21:"App\Entity\Permission":9:{s:25:"\x00App\Entity\Permission\x00id";i:7;s:27:"\x00App\Entity\Permission\x00code";s:17:"DEPARTMENT_DELETE";s:27:"\x00App\Entity\Permission\x00name";s:26:"Supprimer un département.";s:34:"\x00App\Entity\Permission\x00description";N;s:28:"\x00App\Entity\Permission\x00roles";O:33:"Doctrine\ORM\PersistentCollection":2:{s:13:"\x00*\x00collection";O:43:"Doctrine\Common\Collections\ArrayCollection":1:{s:53:"\x00Doctrine\Common\Collections\ArrayCollection\x00elements";a:0:{}}s:14:"\x00*\x00initialized";b:0;}s:38:"\x00App\Entity\Permission\x00permissionGroup";r:93;s:12:"\x00*\x00createdAt";O:8:"DateTime":3:{s:4:"date";s:26:"2025-08-26 15:24:50.000000";s:13:"timezone_type";i:3;s:8:"timezone";s:12:"Europe/Paris";}s:12:"\x00*\x00updatedAt";O:8:"DateTime":3:{s:4:"date";s:26:"2025-08-26 15:24:50.000000";s:13:"timezone_type";i:3;s:8:"timezone";s:12:"Europe/Paris";}s:12:"\x00*\x00deletedAt";N;}i:7;O:21:"App\Entity\Permission":9:{s:25:"\x00App\Entity\Permission\x00id";i:8;s:27:"\x00App\Entity\Permission\x00code";s:22:"ROLE_ORGANIZATION_LIST";s:27:"\x00App\Entity\Permission\x00name";s:41:"Lister tous les rôles de l'organisation.";s:34:"\x00App\Entity\Permission\x00description";N;s:28:"\x00App\Entity\Permission\x00roles";O:33:"Doctrine\ORM\PersistentCollection":2:{s:13:"\x00*\x00collection";O:43:"Doctrine\Common\Collections\ArrayCollection":1:{s:53:"\x00Doctrine\Common\Collections\ArrayCollection\x00elements";a:0:{}}s:14:"\x00*\x00initialized";b:0;}s:38:"\x00App\Entity\Permission\x00permissionGroup";O:41:"Proxies\__CG__\App\Entity\PermissionGroup":1:{s:30:"\x00App\Entity\PermissionGroup\x00id";i:3;}s:12:"\x00*\x00createdAt";O:8:"DateTime":3:{s:4:"date";s:26:"2025-08-26 15:24:50.000000";s:13:"timezone_type";i:3;s:8:"timezone";s:12:"Europe/Paris";}s:12:"\x00*\x00updatedAt";O:8:"DateTime":3:{s:4:"date";s:26:"2025-08-26 15:24:50.000000";s:13:"timezone_type";i:3;s:8:"timezone";s:12:"Europe/Paris";}s:12:"\x00*\x00deletedAt";N;}i:8;O:21:"App\Entity\Permission":9:{s:25:"\x00App\Entity\Permission\x00id";i:9;s:27:"\x00App\Entity\Permission\x00code";s:20:"ROLE_DEPARTMENT_LIST";s:27:"\x00App\Entity\Permission\x00name";s:62:"Lister tous les rôles d'un département (sous-départements).";s:34:"\x00App\Entity\Permission\x00description";N;s:28:"\x00App\Entity\Permission\x00roles";O:33:"Doctrine\ORM\PersistentCollection":2:{s:13:"\x00*\x00collection";O:43:"Doctrine\Common\Collections\ArrayCollection":1:{s:53:"\x00Doctrine\Common\Collections\ArrayCollection\x00elements";a:0:{}}s:14:"\x00*\x00initialized";b:0;}s:38:"\x00App\Entity\Permission\x00permissionGroup";r:1095;s:12:"\x00*\x00createdAt";O:8:"DateTime":3:{s:4:"date";s:26:"2025-08-26 15:24:50.000000";s:13:"timezone_type";i:3;s:8:"timezone";s:12:"Europe/Paris";}s:12:"\x00*\x00updatedAt";O:8:"DateTime":3:{s:4:"date";s:26:"2025-08-26 15:24:50.000000";s:13:"timezone_type";i:3;s:8:"timezone";s:12:"Europe/Paris";}s:12:"\x00*\x00deletedAt";N;}i:9;r:130;i:10;r:150;i:11;O:21:"App\Entity\Permission":9:{s:25:"\x00App\Entity\Permission\x00id";i:21;s:27:"\x00App\Entity\Permission\x00code";s:11:"USER_INVITE";s:27:"\x00App\Entity\Permission\x00name";s:23:"Inviter un utilisateur.";s:34:"\x00App\Entity\Permission\x00description";N;s:28:"\x00App\Entity\Permission\x00roles";O:33:"Doctrine\ORM\PersistentCollection":2:{s:13:"\x00*\x00collection";O:43:"Doctrine\Common\Collections\ArrayCollection":1:{s:53:"\x00Doctrine\Common\Collections\ArrayCollection\x00elements";a:0:{}}s:14:"\x00*\x00initialized";b:0;}s:38:"\x00App\Entity\Permission\x00permissionGroup";r:139;s:12:"\x00*\x00createdAt";O:8:"DateTime":3:{s:4:"date";s:26:"2025-08-26 15:24:50.000000";s:13:"timezone_type";i:3;s:8:"timezone";s:12:"Europe/Paris";}s:12:"\x00*\x00updatedAt";O:8:"DateTime":3:{s:4:"date";s:26:"2025-08-26 15:24:50.000000";s:13:"timezone_type";i:3;s:8:"timezone";s:12:"Europe/Paris";}s:12:"\x00*\x00deletedAt";N;}i:12;O:21:"App\Entity\Permission":9:{s:25:"\x00App\Entity\Permission\x00id";i:22;s:27:"\x00App\Entity\Permission\x00code";s:9:"USER_EDIT";s:27:"\x00App\Entity\Permission\x00name";s:43:"Modifier les informations d'un utilisateur.";s:34:"\x00App\Entity\Permission\x00description";N;s:28:"\x00App\Entity\Permission\x00roles";O:33:"Doctrine\ORM\PersistentCollection":2:{s:13:"\x00*\x00collection";O:43:"Doctrine\Common\Collections\ArrayCollection":1:{s:53:"\x00Doctrine\Common\Collections\ArrayCollection\x00elements";a:0:{}}s:14:"\x00*\x00initialized";b:0;}s:38:"\x00App\Entity\Permission\x00permissionGroup";r:139;s:12:"\x00*\x00createdAt";O:8:"DateTime":3:{s:4:"date";s:26:"2025-08-26 15:24:50.000000";s:13:"timezone_type";i:3;s:8:"timezone";s:12:"Europe/Paris";}s:12:"\x00*\x00updatedAt";O:8:"DateTime":3:{s:4:"date";s:26:"2025-08-26 15:24:50.000000";s:13:"timezone_type";i:3;s:8:"timezone";s:12:"Europe/Paris";}s:12:"\x00*\x00deletedAt";N;}i:13;r:169;i:14;r:188;i:15;O:21:"App\Entity\Permission":9:{s:25:"\x00App\Entity\Permission\x00id";i:27;s:27:"\x00App\Entity\Permission\x00code";s:25:"PROJECT_ORGANIZATION_LIST";s:27:"\x00App\Entity\Permission\x00name";s:42:"Lister tous les projets de l'organisation.";s:34:"\x00App\Entity\Permission\x00description";N;s:28:"\x00App\Entity\Permission\x00roles";O:33:"Doctrine\ORM\PersistentCollection":2:{s:13:"\x00*\x00collection";O:43:"Doctrine\Common\Collections\ArrayCollection":1:{s:53:"\x00Doctrine\Common\Collections\ArrayCollection\x00elements";a:0:{}}s:14:"\x00*\x00initialized";b:0;}s:38:"\x00App\Entity\Permission\x00permissionGroup";r:216;s:12:"\x00*\x00createdAt";O:8:"DateTime":3:{s:4:"date";s:26:"2025-08-26 15:24:50.000000";s:13:"timezone_type";i:3;s:8:"timezone";s:12:"Europe/Paris";}s:12:"\x00*\x00updatedAt";O:8:"DateTime":3:{s:4:"date";s:26:"2025-08-26 15:24:50.000000";s:13:"timezone_type";i:3;s:8:"timezone";s:12:"Europe/Paris";}s:12:"\x00*\x00deletedAt";N;}i:16;r:207;i:17;r:227;i:18;r:246;i:19;r:265;i:20;O:21:"App\Entity\Permission":9:{s:25:"\x00App\Entity\Permission\x00id";i:32;s:27:"\x00App\Entity\Permission\x00code";s:14:"PROJECT_DELETE";s:27:"\x00App\Entity\Permission\x00name";s:20:"Supprimer un projet.";s:34:"\x00App\Entity\Permission\x00description";N;s:28:"\x00App\Entity\Permission\x00roles";O:33:"Doctrine\ORM\PersistentCollection":2:{s:13:"\x00*\x00collection";O:43:"Doctrine\Common\Collections\ArrayCollection":1:{s:53:"\x00Doctrine\Common\Collections\ArrayCollection\x00elements";a:0:{}}s:14:"\x00*\x00initialized";b:0;}s:38:"\x00App\Entity\Permission\x00permissionGroup";r:216;s:12:"\x00*\x00createdAt";O:8:"DateTime":3:{s:4:"date";s:26:"2025-08-26 15:24:50.000000";s:13:"timezone_type";i:3;s:8:"timezone";s:12:"Europe/Paris";}s:12:"\x00*\x00updatedAt";O:8:"DateTime":3:{s:4:"date";s:26:"2025-08-26 15:24:50.000000";s:13:"timezone_type";i:3;s:8:"timezone";s:12:"Europe/Paris";}s:12:"\x00*\x00deletedAt";N;}i:21;O:21:"App\Entity\Permission":9:{s:25:"\x00App\Entity\Permission\x00id";i:33;s:27:"\x00App\Entity\Permission\x00code";s:15:"PROJECT_ARCHIVE";s:27:"\x00App\Entity\Permission\x00name";s:19:"Archiver un projet.";s:34:"\x00App\Entity\Permission\x00description";N;s:28:"\x00App\Entity\Permission\x00roles";O:33:"Doctrine\ORM\PersistentCollection":2:{s:13:"\x00*\x00collection";O:43:"Doctrine\Common\Collections\ArrayCollection":1:{s:53:"\x00Doctrine\Common\Collections\ArrayCollection\x00elements";a:0:{}}s:14:"\x00*\x00initialized";b:0;}s:38:"\x00App\Entity\Permission\x00permissionGroup";r:216;s:12:"\x00*\x00createdAt";O:8:"DateTime":3:{s:4:"date";s:26:"2025-08-26 15:24:50.000000";s:13:"timezone_type";i:3;s:8:"timezone";s:12:"Europe/Paris";}s:12:"\x00*\x00updatedAt";O:8:"DateTime":3:{s:4:"date";s:26:"2025-08-26 15:24:50.000000";s:13:"timezone_type";i:3;s:8:"timezone";s:12:"Europe/Paris";}s:12:"\x00*\x00deletedAt";N;}i:22;O:21:"App\Entity\Permission":9:{s:25:"\x00App\Entity\Permission\x00id";i:35;s:27:"\x00App\Entity\Permission\x00code";s:27:"COMPONENT_ORGANIZATION_LIST";s:27:"\x00App\Entity\Permission\x00name";s:46:"Lister tous les composantes de l'organisation.";s:34:"\x00App\Entity\Permission\x00description";N;s:28:"\x00App\Entity\Permission\x00roles";O:33:"Doctrine\ORM\PersistentCollection":2:{s:13:"\x00*\x00collection";O:43:"Doctrine\Common\Collections\ArrayCollection":1:{s:53:"\x00Doctrine\Common\Collections\ArrayCollection\x00elements";a:0:{}}s:14:"\x00*\x00initialized";b:0;}s:38:"\x00App\Entity\Permission\x00permissionGroup";r:293;s:12:"\x00*\x00createdAt";O:8:"DateTime":3:{s:4:"date";s:26:"2025-08-26 15:24:50.000000";s:13:"timezone_type";i:3;s:8:"timezone";s:12:"Europe/Paris";}s:12:"\x00*\x00updatedAt";O:8:"DateTime":3:{s:4:"date";s:26:"2025-08-26 15:24:50.000000";s:13:"timezone_type";i:3;s:8:"timezone";s:12:"Europe/Paris";}s:12:"\x00*\x00deletedAt";N;}i:23;O:21:"App\Entity\Permission":9:{s:25:"\x00App\Entity\Permission\x00id";i:36;s:27:"\x00App\Entity\Permission\x00code";s:25:"COMPONENT_DEPARTMENT_LIST";s:27:"\x00App\Entity\Permission\x00name";s:65:"Lister tous les composantes du département (sous-départements).";s:34:"\x00App\Entity\Permission\x00description";N;s:28:"\x00App\Entity\Permission\x00roles";O:33:"Doctrine\ORM\PersistentCollection":2:{s:13:"\x00*\x00collection";O:43:"Doctrine\Common\Collections\ArrayCollection":1:{s:53:"\x00Doctrine\Common\Collections\ArrayCollection\x00elements";a:0:{}}s:14:"\x00*\x00initialized";b:0;}s:38:"\x00App\Entity\Permission\x00permissionGroup";r:293;s:12:"\x00*\x00createdAt";O:8:"DateTime":3:{s:4:"date";s:26:"2025-08-26 15:24:50.000000";s:13:"timezone_type";i:3;s:8:"timezone";s:12:"Europe/Paris";}s:12:"\x00*\x00updatedAt";O:8:"DateTime":3:{s:4:"date";s:26:"2025-08-26 15:24:50.000000";s:13:"timezone_type";i:3;s:8:"timezone";s:12:"Europe/Paris";}s:12:"\x00*\x00deletedAt";N;}i:24;r:284;i:25;r:304;i:26;r:323;i:27;r:342;i:28;r:361;i:29;r:380;i:30;O:21:"App\Entity\Permission":9:{s:25:"\x00App\Entity\Permission\x00id";i:43;s:27:"\x00App\Entity\Permission\x00code";s:26:"ACTIVITY_ORGANIZATION_LIST";s:27:"\x00App\Entity\Permission\x00name";s:46:"Lister tous les activités de l'organisation..";s:34:"\x00App\Entity\Permission\x00description";N;s:28:"\x00App\Entity\Permission\x00roles";O:33:"Doctrine\ORM\PersistentCollection":2:{s:13:"\x00*\x00collection";O:43:"Doctrine\Common\Collections\ArrayCollection":1:{s:53:"\x00Doctrine\Common\Collections\ArrayCollection\x00elements";a:0:{}}s:14:"\x00*\x00initialized";b:0;}s:38:"\x00App\Entity\Permission\x00permissionGroup";r:408;s:12:"\x00*\x00createdAt";O:8:"DateTime":3:{s:4:"date";s:26:"2025-08-26 15:24:50.000000";s:13:"timezone_type";i:3;s:8:"timezone";s:12:"Europe/Paris";}s:12:"\x00*\x00updatedAt";O:8:"DateTime":3:{s:4:"date";s:26:"2025-08-26 15:24:50.000000";s:13:"timezone_type";i:3;s:8:"timezone";s:12:"Europe/Paris";}s:12:"\x00*\x00deletedAt";N;}i:31;r:399;i:32;r:419;i:33;r:438;i:34;r:457;i:35;r:476;i:36;r:495;i:37;r:514;i:38;r:533;i:39;r:553;i:40;r:572;i:41;r:591;i:42;r:610;i:43;r:630;i:44;r:649;i:45;r:668;i:46;r:687;i:47;r:706;i:48;r:726;i:49;r:745;i:50;r:764;}}s:14:"\x00*\x00initialized";b:1;}s:27:"\x00App\Entity\Role\x00department";O:36:"Proxies\__CG__\App\Entity\Department":17:{s:25:"\x00App\Entity\Department\x00id";i:1;s:27:"\x00App\Entity\Department\x00name";s:20:"Direction Générale";s:35:"\x00App\Entity\Department\x00abbreviation";s:9:"SENTER/DG";s:35:"\x00App\Entity\Department\x00organization";r:37;s:26:"\x00App\Entity\Department\x00lft";i:1;s:26:"\x00App\Entity\Department\x00lvl";i:0;s:26:"\x00App\Entity\Department\x00rgt";i:10;s:27:"\x00App\Entity\Department\x00root";r:1312;s:29:"\x00App\Entity\Department\x00parent";N;s:31:"\x00App\Entity\Department\x00children";O:33:"Doctrine\ORM\PersistentCollection":2:{s:13:"\x00*\x00collection";O:43:"Doctrine\Common\Collections\ArrayCollection":1:{s:53:"\x00Doctrine\Common\Collections\ArrayCollection\x00elements";a:0:{}}s:14:"\x00*\x00initialized";b:0;}s:31:"\x00App\Entity\Department\x00projects";O:33:"Doctrine\ORM\PersistentCollection":2:{s:13:"\x00*\x00collection";O:43:"Doctrine\Common\Collections\ArrayCollection":1:{s:53:"\x00Doctrine\Common\Collections\ArrayCollection\x00elements";a:0:{}}s:14:"\x00*\x00initialized";b:0;}s:28:"\x00App\Entity\Department\x00users";O:33:"Doctrine\ORM\PersistentCollection":2:{s:13:"\x00*\x00collection";O:43:"Doctrine\Common\Collections\ArrayCollection":1:{s:53:"\x00Doctrine\Common\Collections\ArrayCollection\x00elements";a:0:{}}s:14:"\x00*\x00initialized";b:0;}s:28:"\x00App\Entity\Department\x00roles";O:33:"Doctrine\ORM\PersistentCollection":2:{s:13:"\x00*\x00collection";O:43:"Doctrine\Common\Collections\ArrayCollection":1:{s:53:"\x00Doctrine\Common\Collections\ArrayCollection\x00elements";a:0:{}}s:14:"\x00*\x00initialized";b:0;}s:31:"\x00App\Entity\Department\x00programs";O:33:"Doctrine\ORM\PersistentCollection":2:{s:13:"\x00*\x00collection";O:43:"Doctrine\Common\Collections\ArrayCollection":1:{s:53:"\x00Doctrine\Common\Collections\ArrayCollection\x00elements";a:0:{}}s:14:"\x00*\x00initialized";b:0;}s:12:"\x00*\x00createdAt";O:8:"DateTime":3:{s:4:"date";s:26:"2025-08-26 15:24:11.000000";s:13:"timezone_type";i:3;s:8:"timezone";s:12:"Europe/Paris";}s:12:"\x00*\x00updatedAt";O:8:"DateTime":3:{s:4:"date";s:26:"2025-08-26 15:24:11.000000";s:13:"timezone_type";i:3;s:8:"timezone";s:12:"Europe/Paris";}s:12:"\x00*\x00deletedAt";N;}s:29:"\x00App\Entity\Role\x00organization";N;s:22:"\x00App\Entity\Role\x00users";O:33:"Doctrine\ORM\PersistentCollection":2:{s:13:"\x00*\x00collection";O:43:"Doctrine\Common\Collections\ArrayCollection":1:{s:53:"\x00Doctrine\Common\Collections\ArrayCollection\x00elements";a:0:{}}s:14:"\x00*\x00initialized";b:0;}s:26:"\x00App\Entity\Role\x00isDefault";N;s:12:"\x00*\x00createdAt";O:8:"DateTime":3:{s:4:"date";s:26:"2025-08-26 15:54:59.000000";s:13:"timezone_type";i:3;s:8:"timezone";s:12:"Europe/Paris";}s:12:"\x00*\x00updatedAt";O:8:"DateTime":3:{s:4:"date";s:26:"2025-09-21 16:05:10.000000";s:13:"timezone_type";i:3;s:8:"timezone";s:12:"Europe/Paris";}s:12:"\x00*\x00deletedAt";N;}}}s:14:"\x00*\x00initialized";b:1;}s:29:"\x00App\Entity\User\x00organization";N;s:32:"\x00App\Entity\User\x00userAssignments";O:33:"Doctrine\ORM\PersistentCollection":2:{s:13:"\x00*\x00collection";O:43:"Doctrine\Common\Collections\ArrayCollection":1:{s:53:"\x00Doctrine\Common\Collections\ArrayCollection\x00elements";a:0:{}}s:14:"\x00*\x00initialized";b:0;}s:12:"\x00*\x00createdAt";O:8:"DateTime":3:{s:4:"date";s:26:"2025-08-26 15:56:14.000000";s:13:"timezone_type";i:3;s:8:"timezone";s:12:"Europe/Paris";}s:12:"\x00*\x00updatedAt";O:8:"DateTime":3:{s:4:"date";s:26:"2026-05-04 18:03:08.000000";s:13:"timezone_type";i:3;s:8:"timezone";s:12:"Europe/Paris";}s:12:"\x00*\x00deletedAt";N;}i:1;b:1;i:2;N;i:3;a:0:{}i:4;a:5:{i:0;s:10:"ROLE_ADMIN";i:1;s:24:"ROLE_PROJECT_RESPONSIBLE";i:2;s:20:"ROLE_PROJECT_MONITOR";i:3;s:20:"ROLE_PROJECT_MANAGER";i:4;s:9:"ROLE_USER";}}}" "_csrf/https-app_csrf" => "5Qkg0hs_FI5j-TcVodiAIS1a1tO2aoLaj49M0P5O0Ms" "_csrf/https-organization" => "7JS6I3nFcIZXKlfh_5reMz4KJy-xfQG3rNFG0ALxhqM" "_csrf/https-department" => "aGl8fHxwJ1rVixBPi0XLh694SwoF3hKKbGc3j_aVLYE" "_csrf/https-role" => "ae7lf8j4v6ZZbb2xmCQDfdysvqHGFU2rS4-ASWj1ij0" ] -name: "attributes" -storageKey: "_sf2_attributes" } -data: &7 array:2 [ "_sf2_attributes" => &6 array:6 [&6] "_symfony_flashes" => &8 [] ] -usageIndex: &9 -9223372036854775803 -usageReporter: Symfony\Component\HttpKernel\EventListener\SessionListener::onSessionUsage(): void {#567 : "void" : Symfony\Component\HttpKernel\EventListener\SessionListener {#415 …} : "/home/batrams/Kplan/vendor/symfony/http-kernel/EventListener/AbstractSessionListener.php" : "225 to 258" } } "flashes" => Symfony\Component\HttpFoundation\Session\SessionBagProxy {#570 -bag: Symfony\Component\HttpFoundation\Session\Flash\FlashBag {#761 -name: "flashes" -flashes: &8 [] -storageKey: "_symfony_flashes" } -data: &7 array:2 [&7] -usageIndex: &9 -9223372036854775803 -usageReporter: Symfony\Component\HttpKernel\EventListener\SessionListener::onSessionUsage(): void {#567} } ] #started: true #closed: false #saveHandler: Symfony\Component\HttpFoundation\Session\Storage\Proxy\SessionHandlerProxy {#605 #wrapper: false #saveHandlerName: "files" #handler: Symfony\Component\HttpFoundation\Session\Storage\Handler\StrictSessionHandler {#122 -sessionName: "PHPSESSID" -prefetchId: ? string -prefetchData: ? string -newSessionId: null -igbinaryEmptyData: ? string -handler: SessionHandler {#169} -doDestroy: ? bool } } #metadataBag: Symfony\Component\HttpFoundation\Session\Storage\MetadataBag {#602 #meta: & array:3 [ "u" => 1777911018 "c" => 1777910588 "l" => 43200 ] -name: "__metadata" -storageKey: "_sf2_meta" -lastUsed: 1777911018 -updateThreshold: 0 } } -flashName: "flashes" -attributeName: "attributes" -data: &7 array:2 [&7] -usageIndex: &9 -9223372036854775803 -usageReporter: Symfony\Component\HttpKernel\EventListener\SessionListener::onSessionUsage(): void {#567} } #locale: null #defaultLocale: "fr" -preferredFormat: null -isHostValid: true -isForwardedValid: true -isSafeContentPreferred: ? bool -trustedValuesCache: [] -isIisRewrite: false : "" : "html" } 1 => Symfony\Component\HttpFoundation\Request {#2353 +attributes: Symfony\Component\HttpFoundation\ParameterBag {#2299 #parameters: array:4 [ "_controller" => "error_controller" "exception" => Symfony\Component\HttpClient\Exception\ClientException {#2053} "logger" => Symfony\Bridge\Monolog\Processor\DebugProcessor {#515} "_stopwatch_token" => "d781bd" ] } +request: Symfony\Component\HttpFoundation\InputBag {#2355 #parameters: [] } +query: Symfony\Component\HttpFoundation\InputBag {#2354 #parameters: array:4 [ "periodMonth" => "9" "periodYear" => "2025" "department" => "" "scope" => "ORGANIZATION" ] } +server: Symfony\Component\HttpFoundation\ServerBag {#2351 #parameters: array:90 [ "USER" => "batrams" "SCRIPT_NAME" => "/index.php" "REQUEST_URI" => "/dashboard/insights?periodMonth=9&periodYear=2025&department=&scope=ORGANIZATION" "QUERY_STRING" => "periodMonth=9&periodYear=2025&department=&scope=ORGANIZATION" "REQUEST_METHOD" => "GET" "SERVER_PROTOCOL" => "HTTP/1.1" "GATEWAY_INTERFACE" => "CGI/1.1" "REDIRECT_QUERY_STRING" => "periodMonth=9&periodYear=2025&department=&scope=ORGANIZATION" "REDIRECT_URL" => "/dashboard/insights" "REMOTE_PORT" => "46286" "SCRIPT_FILENAME" => "/home/batrams/Kplan/public/index.php" "SERVER_ADMIN" => "postmaster@kplan.kameldigitalsn.com" "DOCUMENT_ROOT" => "/home/batrams/Kplan/public" "REMOTE_ADDR" => "41.214.116.18" "SERVER_PORT" => "443" "SERVER_ADDR" => "10.123.20.10" "SERVER_NAME" => "kplan.kameldigitalsn.com" "SERVER_SOFTWARE" => "Apache" "SERVER_SIGNATURE" => "" "HTTP_REMOTE_IP" => "41.214.116.18" "HTTP_PRIORITY" => "u=1, i" "HTTP_ACCEPT_LANGUAGE" => "fr-FR,fr;q=0.9,en-US;q=0.8,en;q=0.7" "HTTP_ACCEPT_ENCODING" => "gzip, deflate, br, zstd" "HTTP_REFERER" => "https://kplan.kameldigitalsn.com/dashboard?periodMonth=9&periodYear=2025" "HTTP_SEC_FETCH_DEST" => "empty" "HTTP_SEC_FETCH_MODE" => "cors" "HTTP_SEC_FETCH_SITE" => "same-origin" "HTTP_ACCEPT" => "*/*" "HTTP_SEC_CH_UA_MOBILE" => "?0" "HTTP_SEC_CH_UA" => ""Chromium";v="146", "Not-A.Brand";v="24", "Google Chrome";v="146"" "HTTP_USER_AGENT" => "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/146.0.0.0 Safari/537.36" "HTTP_SEC_CH_UA_PLATFORM" => ""macOS"" "HTTP_X_OVHREQUEST_ID" => "b2d79d5653b5bfe2e6b5c568bf5e5a03" "HTTP_X_FORWARDED_PROTO" => "https" "HTTP_X_FORWARDED_FOR" => "41.214.116.18" "HTTP_X_PREDICTOR" => "1" "HTTP_COOKIE" => "PHPSESSID=82a6b55e8a8317056d5b8ec13fbeb332" "HTTP_HOST" => "kplan.kameldigitalsn.com" "ENVIRONMENT" => "production" "CFG_CLUSTER" => "cluster123" "HTTPS" => "on" "SCRIPT_URI" => "https://kplan.kameldigitalsn.com:443/dashboard/insights" "SCRIPT_URL" => "/dashboard/insights" "GEOIP_LONGITUDE" => "-17.444500" "GEOIP_LATITUDE" => "14.667000" "GEOIP_AREA_CODE" => "0" "GEOIP_DMA_CODE" => "0" "GEOIP_CITY" => "Dakar" "GEOIP_REGION" => "01" "GEOIP_COUNTRY_NAME" => "Senegal" "GEOIP_COUNTRY_CODE" => "SN" "UNIQUE_ID" => "afjE6qoYroxwBird7Al1vQAAAmM" "REDIRECT_STATUS" => "200" "FCGI_ROLE" => "RESPONDER" "PHP_SELF" => "/index.php" "REQUEST_TIME_FLOAT" => 1777911018.9023 "REQUEST_TIME" => 1777911018 "argv" => array:1 [ 0 => "periodMonth=9&periodYear=2025&department=&scope=ORGANIZATION" ] "argc" => 1 "SYMFONY_DOTENV_PATH" => "/home/batrams/Kplan/.env" "APP_ENV" => "dev" "APP_SECRET" => "fc17c3c63363db67a7131d4f3d4aa076" "APP_URL" => "http://localhost:8742" "MYSQL_USER" => "batramskplan" "MYSQL_PASSWORD" => "Kplan2020ML" "MYSQL_HOST" => "batramskplan.mysql.db" "MYSQL_DB_NAME" => "batramskplan" "MYSQL_PORT" => "3306" "MESSENGER_TRANSPORT_DSN" => "sync://" "MAILER_DSN" => "sendgrid://KEY@default" "EMAIL_SEND_METHOD" => "BREVO" "BREVO_API_KEY" => "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" "MAILGUN_API_KEY" => "66d92310568aecee8f710ba3748ddeb0-c02fd0ba-c282267d" "MAILGUN_DOMAIN" => "k-plan.fallintech.fr" "OPENAI_API_KEY" => "" "OPENAI_API_URL" => "https://api.openai.com/v1/chat/completions" "LOCK_DSN" => "flock" "WKHTMLTOPDF_PATH" => "/usr/local/bin/wkhtmltopdf" "WKHTMLTOIMAGE_PATH" => "/usr/local/bin/wkhtmltoimage" "RUN_MIGRATIONS" => "true" "PHP_SESSION_SAVE_HANDLER" => "redis" "PHP_SESSION_SAVE_PATH" => "tcp://redis:6379?database=2&prefix=sess:" "CACHE_DSN" => "redis://redis:6379/1" "GOOGLE_VIEWER_ENABLE" => "true" "SYMFONY_DOTENV_VARS" => "APP_ENV,APP_SECRET,APP_URL,MYSQL_USER,MYSQL_PASSWORD,MYSQL_HOST,MYSQL_DB_NAME,MYSQL_PORT,MESSENGER_TRANSPORT_DSN,MAILER_DSN,EMAIL_SEND_METHOD,BREVO_API_KEY,MAILGUN_API_KEY,MAILGUN_DOMAIN,OPENAI_API_KEY,OPENAI_API_URL,LOCK_DSN,WKHTMLTOPDF_PATH,WKHTMLTOIMAGE_PATH,RUN_MIGRATIONS,PHP_SESSION_SAVE_HANDLER,PHP_SESSION_SAVE_PATH,CACHE_DSN,GOOGLE_VIEWER_ENABLE,SENDGRID_API_KEY,MESSENGER_TRANSPORT_DSN_HIGH,MAILER_FROM_EMAIL,MAILER_FROM_NAME" "SENDGRID_API_KEY" => "" "MESSENGER_TRANSPORT_DSN_HIGH" => "sync://" "MAILER_FROM_EMAIL" => "no-reply@k-plan.fallintech.fr" "MAILER_FROM_NAME" => "KPLAN Notifications" "APP_DEBUG" => "1" ] } +files: Symfony\Component\HttpFoundation\FileBag {#2350 #parameters: [] } +cookies: Symfony\Component\HttpFoundation\InputBag {#2349 #parameters: array:1 [ "PHPSESSID" => "82a6b55e8a8317056d5b8ec13fbeb332" ] } +headers: Symfony\Component\HttpFoundation\HeaderBag {#2352 #headers: array:20 [ "remote-ip" => array:1 [ 0 => "41.214.116.18" ] "priority" => array:1 [ 0 => "u=1, i" ] "accept-language" => array:1 [ 0 => "fr-FR,fr;q=0.9,en-US;q=0.8,en;q=0.7" ] "accept-encoding" => array:1 [ 0 => "gzip, deflate, br, zstd" ] "referer" => array:1 [ 0 => "https://kplan.kameldigitalsn.com/dashboard?periodMonth=9&periodYear=2025" ] "sec-fetch-dest" => array:1 [ 0 => "empty" ] "sec-fetch-mode" => array:1 [ 0 => "cors" ] "sec-fetch-site" => array:1 [ 0 => "same-origin" ] "accept" => array:1 [ 0 => "*/*" ] "sec-ch-ua-mobile" => array:1 [ 0 => "?0" ] "sec-ch-ua" => array:1 [ 0 => ""Chromium";v="146", "Not-A.Brand";v="24", "Google Chrome";v="146"" ] "user-agent" => array:1 [ 0 => "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/146.0.0.0 Safari/537.36" ] "sec-ch-ua-platform" => array:1 [ 0 => ""macOS"" ] "x-ovhrequest-id" => array:1 [ 0 => "b2d79d5653b5bfe2e6b5c568bf5e5a03" ] "x-forwarded-proto" => array:1 [ 0 => "https" ] "x-forwarded-for" => array:1 [ 0 => "41.214.116.18" ] "x-predictor" => array:1 [ 0 => "1" ] "cookie" => array:1 [ 0 => "PHPSESSID=82a6b55e8a8317056d5b8ec13fbeb332" ] "host" => array:1 [ 0 => "kplan.kameldigitalsn.com" ] "x-php-ob-level" => array:1 [ 0 => "1" ] ] #cacheControl: [] } #content: "" #languages: null #charsets: null #encodings: null #acceptableContentTypes: array:1 [ 0 => "*/*" ] #pathInfo: "/dashboard/insights" #requestUri: "/dashboard/insights?periodMonth=9&periodYear=2025&department=&scope=ORGANIZATION" #baseUrl: "" #basePath: null #method: "GET" #format: null #session: Symfony\Component\HttpFoundation\Session\Session {#542} #locale: null #defaultLocale: "fr" -preferredFormat: null -isHostValid: true -isForwardedValid: true -isSafeContentPreferred: ? bool -trustedValuesCache: [] -isIisRewrite: false : "" : "html" } ] } } } ] #microsecondTimestamps: true #timezone: DateTimeZone {#957 : Europe/Paris (+02:00) +"timezone_type": 3 +"timezone": "Europe/Paris" } #exceptionHandler: null -logDepth: 0 -fiberLogDepth: WeakMap {#956 : [] } -detectCycles: true } -maxHostConnections: 6 -maxPendingPushes: 50 -multi: Symfony\Component\HttpClient\Internal\CurlClientState {#2030 …} } } -response: Symfony\Component\HttpClient\Response\CurlResponse {#1972 : array:15 [ 0 => "HTTP/2 401 " 1 => "date: Mon, 04 May 2026 16:10:19 GMT" 2 => "content-type: application/json; charset=utf-8" 3 => "content-length: 496" 4 => "set-cookie: __cf_bm=wzrLolm_rgGTCr56tbXWeketxG0cF6m1w1W03m4L9Y8-1777911019.4552722-1.0.1.1-HqWcCJEDJ.wp8q6BhWH.Goyt5I86yyKoqPZzBcgdgRcnxzlhPhWRoByCJ2CIaMFDU1jpfQ5vbdSVK.EHXDqH3YdwsQp44qzJ_bayS8BwhAUXH4cbmFwgOBUyQsQrXKff; HttpOnly; Secure; Path=/; Domain=api.openai.com; Expires=Mon, 04 May 2026 16:40:19 GMT" 5 => "set-cookie: _cfuvid=mZtL3TfGLOeqZjLcM9nIh_NA.xwFVYewZk5GfScCmVU-1777911019.4552722-1.0.1.1-Aw0XFDGlC_V07gtUifBYUcyrUV2xlMp0hVps1wD1Be0; HttpOnly; SameSite=None; Secure; Path=/; Domain=api.openai.com" 6 => "cf-ray: 9f68c65f9cdc7008-CDG" 7 => "cf-cache-status: DYNAMIC" 8 => "server: cloudflare" 9 => "strict-transport-security: max-age=31536000; includeSubDomains; preload" 10 => "vary: Origin" 11 => "x-content-type-options: nosniff" 12 => "x-openai-proxy-wasm: v0.1" 13 => "x-request-id: req_72445fc4253141848533d496a1c614ec" 14 => "alt-svc: h3=":443"; ma=86400" ] : 401 : null : false : "POST" : null : 0.0 : 1777911019.0213 : "https://api.openai.com/v1/chat/completions" : Closure(float $duration) {#2051 : "Symfony\Component\HttpClient\Response\CurlResponse" : { : CurlHandle {#1983 …} : Symfony\Component\HttpClient\Internal\CurlClientState {#2030 …} : -9223372036854775808 } : "/home/batrams/Kplan/vendor/symfony/http-client/Response/CurlResponse.php" : "102 to 119" } : null : "https://api.openai.com/v1/chat/completions" : "application/json; charset=utf-8" : 934 : 211 : -1 : 0 : 0 : 0.508179 : 0.200219 : 0.206399 : 0.215989 : 3351.0 : 496.0 : 976.0 : 6596.0 : 496.0 : 3351.0 : 0.216012 : 0.0 : "162.159.140.245" : [] : 443 : "10.123.20.10" : 40962 : 3 : 2 : 0 : "HTTPS" : 215777 : 206399 : 200219 : 215989 : 0 : 216012 : 508179 : "Due to a bug in curl 7.64.0, the debug log is disabled; use another version to work around the issue." …16 } -content: & """ {\n "error": {\n "message": "You didn't provide an API key. You need to provide your API key in an Authorization header using Bearer auth (i.e. Authorization: Bearer YOUR_KEY), or as the password field (with blank username) if you're accessing the API from your browser and are prompted for a username and password. You can obtain an API key from https://platform.openai.com/account/api-keys.",\n "type": "invalid_request_error",\n "param": null,\n "code": null\n }\n }\n """ -event: Symfony\Component\Stopwatch\StopwatchEvent {#2058 -periods: array:1 [ 0 => Symfony\Component\Stopwatch\StopwatchPeriod {#2057 -start: 92.5 -end: 601.1 -memory: 16777216 } ] -origin: 1777911018929.1 -category: "http_client" -started: [] -name: "POST https://api.openai.com/v1/chat/completions" -morePrecision: true } } }
if (500 <= $code) {throw new ServerException($this);}if (400 <= $code) {throw new ClientException($this);}if (300 <= $code) {throw new RedirectionException($this);}
in
vendor/symfony/http-client/Response/TraceableResponse.php
->
checkStatusCode
(line 100)
} finally {if ($this->event?->isStarted()) {$this->event->stop();}if ($throw) {$this->checkStatusCode($this->response->getStatusCode());}}}public function toArray(bool $throw = true): array
],'temperature' => 0.7,],]);return $response->getContent();});return $this->decodeChatGptResponse($response);}
in
vendor/symfony/cache/Adapter/TraceableAdapter.php
->
{closure:App\Domain\Services\AI\OpenAiAPIService::analyseKPI():58}
(line 48)
$isHit = true;$callback = function (CacheItem $item, bool &$save) use ($callback, &$isHit) {$isHit = $item->isHit();return $callback($item, $save);};$event = $this->start(__FUNCTION__);try {$value = $this->pool->get($key, $callback, $beta, $metadata);
in
vendor/symfony/cache/LockRegistry.php
->
{closure:Symfony\Component\Cache\Adapter\TraceableAdapter::get():45}
(line 111)
if ($locked || !$wouldBlock) {$logger?->info(sprintf('Lock %s, now computing item "{key}"', $locked ? 'acquired' : 'not supported'), ['key' => $item->getKey()]);self::$lockedFiles[$key] = true;$value = $callback($item, $save);if ($save) {if ($setMetadata) {$setMetadata($item);}
in
vendor/symfony/cache/Traits/ContractsTrait.php
::
compute
(line 102)
if (!isset($this->callbackWrapper)) {$this->setCallbackWrapper($this->setCallbackWrapper(null));}try {$value = ($this->callbackWrapper)($callback, $item, $save, $pool, function (CacheItem $item) use ($setMetadata, $startTime, &$metadata) {$setMetadata($item, $startTime, $metadata);}, $this->logger ?? null);$setMetadata($item, $startTime, $metadata);return $value;
in
vendor/symfony/cache-contracts/CacheTrait.php
->
{closure:Symfony\Component\Cache\Traits\ContractsTrait::doGet():85}
(line 64)
}}if ($recompute) {$save = true;$item->set($callback($item, $save));if ($save) {$pool->save($item);}}
in
vendor/symfony/cache/Traits/ContractsTrait.php
->
contractsGet
(line 85)
CacheItem::class);$this->callbackWrapper ??= LockRegistry::compute(...);return $this->contractsGet($pool, $key, function (CacheItem $item, bool &$save) use ($pool, $callback, $setMetadata, &$metadata, $key) {// don't wrap nor save recursive callsif (isset($this->computing[$key])) {$value = $callback($item, $save);$save = false;
in
vendor/symfony/cache-contracts/CacheTrait.php
->
doGet
(line 30)
*/trait CacheTrait{public function get(string $key, callable $callback, ?float $beta = null, ?array &$metadata = null): mixed{return $this->doGet($this, $key, $callback, $beta, $metadata);}public function delete(string $key): bool{return $this->deleteItem($key);
in
vendor/symfony/cache/Adapter/TraceableAdapter.php
->
get
(line 53)
return $callback($item, $save);};$event = $this->start(__FUNCTION__);try {$value = $this->pool->get($key, $callback, $beta, $metadata);$event->result[$key] = get_debug_type($value);} finally {$event->end = microtime(true);}if ($isHit) {
TraceableAdapter->get('011faf1e180fe65f70e532d1ea39d0e6', object(Closure))
in
src/Domain/Services/AI/OpenAiAPIService.php
(line 58)
public function analyseKPI(string $prompt): array{$cacheKey = md5($prompt);$response = $this->cache->get($cacheKey, function(ItemInterface $item) use ($prompt) {$item->expiresAfter(self::CACHE_DURATION);$response = $this->client->request('POST', $this->apiUrl, ['headers' => $this->getHeaders(),'json' => ['model' => 'gpt-4o',
OpenAiAPIService->analyseKPI('Tu es un expert en suivi-évaluation de projets gouvernementaux. Je vais te fournir un ensemble de données (KPIs globaux, projets en retard, incidents...).Génère une liste d\'insights structurés en JSON respectant strictement le modèle suivant :[ { "observation": "[emoji] Titre de l’observation (phrase courte)", "description": "Texte explicatif ou analyse en une phrase", "actionable_steps": ["Étape concrète à envisager", "Autre action à prendre"], "keywords": ["mot-clé-1", "mot-clé-2"] }]Ne commente pas. Ne fournis aucun texte hors du tableau JSON.Voici les données :- execution_rate : 1.28 (metadata : {"value":1.28,"period":"2025-09","variation":0,"department":null,"performance":0,"project_count":1})- milestone_processing_delay : 0 (metadata : {"value":0,"department":null,"fill_delay":13.03,"approve_delay":0,"validate_delay":0,"fill_trend_delay":0,"approve_trend_delay":0,"validate_trend_delay":0})- milestone_performance_score : 0 (metadata : {"value":0,"metadata":{"raw_delays":{"fill_delay":0,"approve_delay":0,"validate_delay":0},"weighted_delay":0},"department":null})- top_5_projects : 0 (metadata : {"value":0,"metadata":[],"department":null})- flop_5_projects : 0 (metadata : {"value":0,"metadata":[{"id":1,"owner":"SENTER\\/DG","acronym":"MEPDU","gap_avg":-98.72,"project":"Mise en place d\'une usine de Traverse en B\\u00e9ton","performance":1.28,"actual_progress_avg":1.28,"planned_progress_avg":100,"relative_performance":1.28}],"department":null})- projects_performance : 1.28 (metadata : {"trend":0,"value":1.28,"period":"2025-09","variation":0,"department":null,"project_count":1,"project_count_status":"stable","delayed_project_count":1,"on_time_project_count":0})- budget_allocated : 10000000000 (metadata : {"unit":"FCFA","value":10000000000,"department":null})- budget_committed : 2603000 (metadata : {"unit":"FCFA","value":2603000,"department":null})- budget_disbursed : 0 (metadata : {"unit":"FCFA","value":0,"department":null})- budget_execution_rate : 0 (metadata : {"unit":"%","value":0,"department":null})Rédige les insights sous forme de liste avec des emojis et des mots-clés utiles.')
in
src/Domain/UseCase/AI/DashboardInsightUseCase.php
(line 20)
}public function execute(array $kpis,): array{$startedAt = microtime(true);$prompt = $this->buildPrompt($kpis);try {$result = $this->openAPIService->analyseKPI($prompt);
DashboardInsightUseCase->execute(array(object(DashboardKPI), object(DashboardKPI), object(DashboardKPI), object(DashboardKPI), object(DashboardKPI), object(DashboardKPI), object(DashboardKPI), object(DashboardKPI), object(DashboardKPI), object(DashboardKPI)))
in
src/Controller/Dashboard/DashboardController.php
(line 113)
#[Route('/insights', name: 'app_dashboard_insights', options: ['expose' => true], methods: ['GET'])]public function dashboardInsights(Request $request,DashboardInsightUseCase $useCase,) : JsonResponse {$now = new \DateTimeImmutable();$periodMonth = $request->query->get('periodMonth') ?? $now->format('m');$periodYear = $request->query->get('periodYear') ?? $now->format('Y');$departmentId = $request->query->get('department') ?? null;$organization = $this->userContextService->getOrganization();
in
vendor/symfony/http-kernel/HttpKernel.php
->
dashboardInsights
(line 183)
$this->dispatcher->dispatch($event, KernelEvents::CONTROLLER_ARGUMENTS);$controller = $event->getController();$arguments = $event->getArguments();// call controller$response = $controller(...$arguments);// viewif (!$response instanceof Response) {$event = new ViewEvent($this, $request, $type, $response, $event);$this->dispatcher->dispatch($event, KernelEvents::VIEW);
in
vendor/symfony/http-kernel/HttpKernel.php
->
handleRaw
(line 76)
$request->headers->set('X-Php-Ob-Level', (string) ob_get_level());$this->requestStack->push($request);$response = null;try {return $response = $this->handleRaw($request, $type);} catch (\Throwable $e) {if ($e instanceof \Error && !$this->handleAllThrowables) {throw $e;}
in
vendor/symfony/http-kernel/Kernel.php
->
handle
(line 182)
$this->boot();++$this->requestStackSize;$this->resetServices = true;try {return $this->getHttpKernel()->handle($request, $type, $catch);} finally {--$this->requestStackSize;}}
in
vendor/symfony/runtime/Runner/Symfony/HttpKernelRunner.php
->
handle
(line 35)
) {}public function run(): int{$response = $this->kernel->handle($this->request);if (Kernel::VERSION_ID >= 60400) {$response->send(false);if (\function_exists('fastcgi_finish_request') && !$this->debug) {
in
vendor/autoload_runtime.php
->
run
(line 29)
$app = $app(...$args);exit($runtime->getRunner($app)->run());
<?phpuse App\Kernel;require_once dirname(__DIR__).'/vendor/autoload_runtime.php';return function (array $context) {return new Kernel($context['APP_ENV'], (bool) $context['APP_DEBUG']);};
Logs
| Level | Channel | Message |
|---|---|---|
| DEBUG 06:17:09 | php |
Warning: Zend OPcache API is restricted by "restrict_api" configuration directive {
"exception": {
"severity": 2,
"file": "/home/batrams/Kplan/vendor/symfony/error-handler/DebugClassLoader.php",
"line": 296,
"trace": [
{
"file": "/home/batrams/Kplan/vendor/doctrine/doctrine-bundle/src/DoctrineBundle.php",
"line": 132,
"function": "loadClass",
"class": "Symfony\\Component\\ErrorHandler\\DebugClassLoader",
"type": "->"
}
],
"count": 8
}
}
|
| INFO 06:17:09 | request |
Matched route "_profiler". {
"route": "_profiler",
"route_parameters": {
"_route": "_profiler",
"_controller": "web_profiler.controller.profiler::panelAction",
"token": "559fb5"
},
"request_uri": "https://kplan.kameldigitalsn.com/_profiler/559fb5",
"method": "GET"
}
|
| DEBUG 06:17:09 | event |
Notified event "kernel.request" to listener "Symfony\Component\HttpKernel\EventListener\DebugHandlersListener::configure". {
"event": "kernel.request",
"listener": "Symfony\\Component\\HttpKernel\\EventListener\\DebugHandlersListener::configure"
}
|
| DEBUG 06:17:09 | event |
Notified event "kernel.request" to listener "App\EventSubscriber\HttpLogSubscriber::onRequest". {
"event": "kernel.request",
"listener": "App\\EventSubscriber\\HttpLogSubscriber::onRequest"
}
|
| DEBUG 06:17:09 | event |
Notified event "kernel.request" to listener "Stof\DoctrineExtensionsBundle\EventListener\IpTraceListener::onKernelRequest". {
"event": "kernel.request",
"listener": "Stof\\DoctrineExtensionsBundle\\EventListener\\IpTraceListener::onKernelRequest"
}
|
| DEBUG 06:17:09 | event |
Notified event "kernel.request" to listener "Symfony\Component\HttpKernel\EventListener\ValidateRequestListener::onKernelRequest". {
"event": "kernel.request",
"listener": "Symfony\\Component\\HttpKernel\\EventListener\\ValidateRequestListener::onKernelRequest"
}
|
| DEBUG 06:17:09 | event |
Notified event "kernel.request" to listener "Symfony\Bridge\Doctrine\Middleware\IdleConnection\Listener::onKernelRequest". {
"event": "kernel.request",
"listener": "Symfony\\Bridge\\Doctrine\\Middleware\\IdleConnection\\Listener::onKernelRequest"
}
|
| DEBUG 06:17:09 | event |
Notified event "kernel.request" to listener "Symfony\Component\HttpKernel\EventListener\SessionListener::onKernelRequest". {
"event": "kernel.request",
"listener": "Symfony\\Component\\HttpKernel\\EventListener\\SessionListener::onKernelRequest"
}
|
| DEBUG 06:17:09 | event |
Notified event "kernel.request" to listener "Symfony\Component\HttpKernel\EventListener\LocaleListener::setDefaultLocale". {
"event": "kernel.request",
"listener": "Symfony\\Component\\HttpKernel\\EventListener\\LocaleListener::setDefaultLocale"
}
|
| DEBUG 06:17:09 | event |
Notified event "kernel.request" to listener "Symfony\Component\HttpKernel\EventListener\FragmentListener::onKernelRequest". {
"event": "kernel.request",
"listener": "Symfony\\Component\\HttpKernel\\EventListener\\FragmentListener::onKernelRequest"
}
|
| DEBUG 06:17:09 | event |
Notified event "kernel.request" to listener "Symfony\Component\HttpKernel\EventListener\RouterListener::onKernelRequest". {
"event": "kernel.request",
"listener": "Symfony\\Component\\HttpKernel\\EventListener\\RouterListener::onKernelRequest"
}
|
| DEBUG 06:17:09 | event |
Notified event "kernel.request" to listener "Symfony\Component\HttpKernel\EventListener\LocaleListener::onKernelRequest". {
"event": "kernel.request",
"listener": "Symfony\\Component\\HttpKernel\\EventListener\\LocaleListener::onKernelRequest"
}
|
| DEBUG 06:17:09 | event |
Notified event "kernel.request" to listener "Symfony\Component\HttpKernel\EventListener\LocaleAwareListener::onKernelRequest". {
"event": "kernel.request",
"listener": "Symfony\\Component\\HttpKernel\\EventListener\\LocaleAwareListener::onKernelRequest"
}
|
| DEBUG 06:17:09 | event |
Notified event "kernel.request" to listener "Symfony\Bundle\SecurityBundle\Debug\TraceableFirewallListener::configureLogoutUrlGenerator". {
"event": "kernel.request",
"listener": "Symfony\\Bundle\\SecurityBundle\\Debug\\TraceableFirewallListener::configureLogoutUrlGenerator"
}
|
| DEBUG 06:17:09 | event |
Notified event "kernel.request" to listener "Symfony\Bundle\SecurityBundle\Debug\TraceableFirewallListener::onKernelRequest". {
"event": "kernel.request",
"listener": "Symfony\\Bundle\\SecurityBundle\\Debug\\TraceableFirewallListener::onKernelRequest"
}
|
| DEBUG 06:17:09 | event |
Notified event "kernel.request" to listener "Knp\Bundle\PaginatorBundle\Subscriber\SlidingPaginationSubscriber::onKernelRequest". {
"event": "kernel.request",
"listener": "Knp\\Bundle\\PaginatorBundle\\Subscriber\\SlidingPaginationSubscriber::onKernelRequest"
}
|
| DEBUG 06:17:09 | event |
Notified event "kernel.request" to listener "Stof\DoctrineExtensionsBundle\EventListener\BlameListener::onKernelRequest". {
"event": "kernel.request",
"listener": "Stof\\DoctrineExtensionsBundle\\EventListener\\BlameListener::onKernelRequest"
}
|
| INFO 06:17:09 | doctrine |
Connecting with parameters {params} {
"params": {
"dbname": "batramskplan",
"host": "batramskplan.mysql.db",
"port": "3306",
"user": "batramskplan",
"password": "<redacted>",
"use_savepoints": true,
"driver": "pdo_mysql",
"idle_connection_ttl": 600,
"driverOptions": [],
"defaultTableOptions": {
"collation": "utf8mb4_unicode_ci"
},
"charset": "utf8mb4"
}
}
|
| INFO 06:17:09 | deprecation |
User Deprecated: Using ArrayAccess on Doctrine\ORM\Mapping\FieldMapping is deprecated and will not be possible in Doctrine ORM 4.0. Use the corresponding property instead. (ArrayAccessImplementation.php:31 called by AbstractAnnotationDriver.php:134, https://github.com/doctrine/orm/pull/11211, package doctrine/orm) {
"exception": {}
}
|
| DEBUG 06:17:09 | event |
Notified event "kernel.controller" to listener "Symfony\Bundle\FrameworkBundle\DataCollector\RouterDataCollector::onKernelController". {
"event": "kernel.controller",
"listener": "Symfony\\Bundle\\FrameworkBundle\\DataCollector\\RouterDataCollector::onKernelController"
}
|
| DEBUG 06:17:09 | event |
Notified event "kernel.controller" to listener "Symfony\Component\HttpKernel\DataCollector\RequestDataCollector::onKernelController". {
"event": "kernel.controller",
"listener": "Symfony\\Component\\HttpKernel\\DataCollector\\RequestDataCollector::onKernelController"
}
|
| DEBUG 06:17:09 | event |
Notified event "kernel.controller" to listener "DH\AuditorBundle\Event\ViewerEventSubscriber::onKernelController". {
"event": "kernel.controller",
"listener": "DH\\AuditorBundle\\Event\\ViewerEventSubscriber::onKernelController"
}
|
| DEBUG 06:17:09 | event |
Notified event "kernel.controller_arguments" to listener "Symfony\Component\Security\Http\EventListener\IsCsrfTokenValidAttributeListener::onKernelControllerArguments". {
"event": "kernel.controller_arguments",
"listener": "Symfony\\Component\\Security\\Http\\EventListener\\IsCsrfTokenValidAttributeListener::onKernelControllerArguments"
}
|
| DEBUG 06:17:09 | event |
Notified event "kernel.controller_arguments" to listener "App\EventSubscriber\PermissionsOnlySubscriber::onKernelControllerArguments". {
"event": "kernel.controller_arguments",
"listener": "App\\EventSubscriber\\PermissionsOnlySubscriber::onKernelControllerArguments"
}
|
| DEBUG 06:17:09 | event |
Notified event "kernel.controller_arguments" to listener "Symfony\Component\Security\Http\EventListener\IsGrantedAttributeListener::onKernelControllerArguments". {
"event": "kernel.controller_arguments",
"listener": "Symfony\\Component\\Security\\Http\\EventListener\\IsGrantedAttributeListener::onKernelControllerArguments"
}
|
| DEBUG 06:17:09 | event |
Notified event "kernel.controller_arguments" to listener "Symfony\Component\HttpKernel\EventListener\CacheAttributeListener::onKernelControllerArguments". {
"event": "kernel.controller_arguments",
"listener": "Symfony\\Component\\HttpKernel\\EventListener\\CacheAttributeListener::onKernelControllerArguments"
}
|
| DEBUG 06:17:09 | event |
Notified event "kernel.controller_arguments" to listener "ContainerPS6TrTu\RequestPayloadValueResolverGhost01ca9cc::onKernelControllerArguments". {
"event": "kernel.controller_arguments",
"listener": "ContainerPS6TrTu\\RequestPayloadValueResolverGhost01ca9cc::onKernelControllerArguments"
}
|
| DEBUG 06:17:09 | event |
Notified event "kernel.controller_arguments" to listener "Symfony\Component\HttpKernel\EventListener\ErrorListener::onControllerArguments". {
"event": "kernel.controller_arguments",
"listener": "Symfony\\Component\\HttpKernel\\EventListener\\ErrorListener::onControllerArguments"
}
|
| DEBUG 06:17:09 | event |
Notified event "kernel.request" to listener "Symfony\Component\HttpKernel\EventListener\DebugHandlersListener::configure". {
"event": "kernel.request",
"listener": "Symfony\\Component\\HttpKernel\\EventListener\\DebugHandlersListener::configure"
}
|
| DEBUG 06:17:09 | event |
Notified event "kernel.request" to listener "App\EventSubscriber\HttpLogSubscriber::onRequest". {
"event": "kernel.request",
"listener": "App\\EventSubscriber\\HttpLogSubscriber::onRequest"
}
|
| DEBUG 06:17:09 | event |
Notified event "kernel.request" to listener "Stof\DoctrineExtensionsBundle\EventListener\IpTraceListener::onKernelRequest". {
"event": "kernel.request",
"listener": "Stof\\DoctrineExtensionsBundle\\EventListener\\IpTraceListener::onKernelRequest"
}
|
| DEBUG 06:17:09 | event |
Notified event "kernel.request" to listener "Symfony\Component\HttpKernel\EventListener\ValidateRequestListener::onKernelRequest". {
"event": "kernel.request",
"listener": "Symfony\\Component\\HttpKernel\\EventListener\\ValidateRequestListener::onKernelRequest"
}
|
| DEBUG 06:17:09 | event |
Notified event "kernel.request" to listener "Symfony\Bridge\Doctrine\Middleware\IdleConnection\Listener::onKernelRequest". {
"event": "kernel.request",
"listener": "Symfony\\Bridge\\Doctrine\\Middleware\\IdleConnection\\Listener::onKernelRequest"
}
|
| DEBUG 06:17:09 | event |
Notified event "kernel.request" to listener "Symfony\Component\HttpKernel\EventListener\SessionListener::onKernelRequest". {
"event": "kernel.request",
"listener": "Symfony\\Component\\HttpKernel\\EventListener\\SessionListener::onKernelRequest"
}
|
| DEBUG 06:17:09 | event |
Notified event "kernel.request" to listener "Symfony\Component\HttpKernel\EventListener\LocaleListener::setDefaultLocale". {
"event": "kernel.request",
"listener": "Symfony\\Component\\HttpKernel\\EventListener\\LocaleListener::setDefaultLocale"
}
|
| DEBUG 06:17:09 | event |
Notified event "kernel.request" to listener "Symfony\Component\HttpKernel\EventListener\FragmentListener::onKernelRequest". {
"event": "kernel.request",
"listener": "Symfony\\Component\\HttpKernel\\EventListener\\FragmentListener::onKernelRequest"
}
|
| DEBUG 06:17:09 | event |
Notified event "kernel.request" to listener "Symfony\Component\HttpKernel\EventListener\RouterListener::onKernelRequest". {
"event": "kernel.request",
"listener": "Symfony\\Component\\HttpKernel\\EventListener\\RouterListener::onKernelRequest"
}
|
| DEBUG 06:17:09 | event |
Notified event "kernel.request" to listener "Symfony\Component\HttpKernel\EventListener\LocaleListener::onKernelRequest". {
"event": "kernel.request",
"listener": "Symfony\\Component\\HttpKernel\\EventListener\\LocaleListener::onKernelRequest"
}
|
| DEBUG 06:17:09 | event |
Notified event "kernel.request" to listener "Symfony\Component\HttpKernel\EventListener\LocaleAwareListener::onKernelRequest". {
"event": "kernel.request",
"listener": "Symfony\\Component\\HttpKernel\\EventListener\\LocaleAwareListener::onKernelRequest"
}
|
| DEBUG 06:17:09 | event |
Notified event "kernel.request" to listener "Symfony\Bundle\SecurityBundle\Debug\TraceableFirewallListener::configureLogoutUrlGenerator". {
"event": "kernel.request",
"listener": "Symfony\\Bundle\\SecurityBundle\\Debug\\TraceableFirewallListener::configureLogoutUrlGenerator"
}
|
| DEBUG 06:17:09 | event |
Notified event "kernel.request" to listener "Symfony\Bundle\SecurityBundle\Debug\TraceableFirewallListener::onKernelRequest". {
"event": "kernel.request",
"listener": "Symfony\\Bundle\\SecurityBundle\\Debug\\TraceableFirewallListener::onKernelRequest"
}
|
| DEBUG 06:17:09 | event |
Notified event "kernel.request" to listener "Knp\Bundle\PaginatorBundle\Subscriber\SlidingPaginationSubscriber::onKernelRequest". {
"event": "kernel.request",
"listener": "Knp\\Bundle\\PaginatorBundle\\Subscriber\\SlidingPaginationSubscriber::onKernelRequest"
}
|
| DEBUG 06:17:09 | event |
Notified event "kernel.request" to listener "Stof\DoctrineExtensionsBundle\EventListener\BlameListener::onKernelRequest". {
"event": "kernel.request",
"listener": "Stof\\DoctrineExtensionsBundle\\EventListener\\BlameListener::onKernelRequest"
}
|
| DEBUG 06:17:09 | event |
Notified event "kernel.controller" to listener "Symfony\Bundle\FrameworkBundle\DataCollector\RouterDataCollector::onKernelController". {
"event": "kernel.controller",
"listener": "Symfony\\Bundle\\FrameworkBundle\\DataCollector\\RouterDataCollector::onKernelController"
}
|
| DEBUG 06:17:09 | event |
Notified event "kernel.controller" to listener "Symfony\Component\HttpKernel\DataCollector\RequestDataCollector::onKernelController". {
"event": "kernel.controller",
"listener": "Symfony\\Component\\HttpKernel\\DataCollector\\RequestDataCollector::onKernelController"
}
|
| DEBUG 06:17:09 | event |
Notified event "kernel.controller" to listener "DH\AuditorBundle\Event\ViewerEventSubscriber::onKernelController". {
"event": "kernel.controller",
"listener": "DH\\AuditorBundle\\Event\\ViewerEventSubscriber::onKernelController"
}
|
| DEBUG 06:17:09 | event |
Notified event "kernel.controller_arguments" to listener "Symfony\Component\Security\Http\EventListener\IsCsrfTokenValidAttributeListener::onKernelControllerArguments". {
"event": "kernel.controller_arguments",
"listener": "Symfony\\Component\\Security\\Http\\EventListener\\IsCsrfTokenValidAttributeListener::onKernelControllerArguments"
}
|
| DEBUG 06:17:09 | event |
Notified event "kernel.controller_arguments" to listener "App\EventSubscriber\PermissionsOnlySubscriber::onKernelControllerArguments". {
"event": "kernel.controller_arguments",
"listener": "App\\EventSubscriber\\PermissionsOnlySubscriber::onKernelControllerArguments"
}
|
| DEBUG 06:17:09 | event |
Notified event "kernel.controller_arguments" to listener "Symfony\Component\Security\Http\EventListener\IsGrantedAttributeListener::onKernelControllerArguments". {
"event": "kernel.controller_arguments",
"listener": "Symfony\\Component\\Security\\Http\\EventListener\\IsGrantedAttributeListener::onKernelControllerArguments"
}
|
| DEBUG 06:17:09 | event |
Notified event "kernel.controller_arguments" to listener "Symfony\Component\HttpKernel\EventListener\CacheAttributeListener::onKernelControllerArguments". {
"event": "kernel.controller_arguments",
"listener": "Symfony\\Component\\HttpKernel\\EventListener\\CacheAttributeListener::onKernelControllerArguments"
}
|
| DEBUG 06:17:09 | event |
Notified event "kernel.controller_arguments" to listener "ContainerPS6TrTu\RequestPayloadValueResolverGhost01ca9cc::onKernelControllerArguments". {
"event": "kernel.controller_arguments",
"listener": "ContainerPS6TrTu\\RequestPayloadValueResolverGhost01ca9cc::onKernelControllerArguments"
}
|
| DEBUG 06:17:09 | event |
Notified event "kernel.controller_arguments" to listener "Symfony\Component\HttpKernel\EventListener\ErrorListener::onControllerArguments". {
"event": "kernel.controller_arguments",
"listener": "Symfony\\Component\\HttpKernel\\EventListener\\ErrorListener::onControllerArguments"
}
|
| DEBUG 06:17:09 | event |
Notified event "kernel.response" to listener "Symfony\Component\Security\Http\Firewall\ContextListener::onKernelResponse". {
"event": "kernel.response",
"listener": "Symfony\\Component\\Security\\Http\\Firewall\\ContextListener::onKernelResponse"
}
|
| DEBUG 06:17:09 | event |
Notified event "kernel.response" to listener "Symfony\Component\HttpKernel\EventListener\ResponseListener::onKernelResponse". {
"event": "kernel.response",
"listener": "Symfony\\Component\\HttpKernel\\EventListener\\ResponseListener::onKernelResponse"
}
|
| DEBUG 06:17:09 | event |
Notified event "kernel.response" to listener "Symfony\Component\WebLink\EventListener\AddLinkHeaderListener::onKernelResponse". {
"event": "kernel.response",
"listener": "Symfony\\Component\\WebLink\\EventListener\\AddLinkHeaderListener::onKernelResponse"
}
|
| DEBUG 06:17:09 | event |
Notified event "kernel.response" to listener "Symfony\Component\HttpKernel\DataCollector\RequestDataCollector::onKernelResponse". {
"event": "kernel.response",
"listener": "Symfony\\Component\\HttpKernel\\DataCollector\\RequestDataCollector::onKernelResponse"
}
|
| DEBUG 06:17:09 | event |
Notified event "kernel.response" to listener "Symfony\Component\HttpKernel\EventListener\CacheAttributeListener::onKernelResponse". {
"event": "kernel.response",
"listener": "Symfony\\Component\\HttpKernel\\EventListener\\CacheAttributeListener::onKernelResponse"
}
|
| DEBUG 06:17:09 | event |
Notified event "kernel.response" to listener "Symfony\Component\HttpKernel\EventListener\ProfilerListener::onKernelResponse". {
"event": "kernel.response",
"listener": "Symfony\\Component\\HttpKernel\\EventListener\\ProfilerListener::onKernelResponse"
}
|
| DEBUG 06:17:09 | event |
Notified event "kernel.response" to listener "Symfony\Component\HttpKernel\EventListener\ErrorListener::removeCspHeader". {
"event": "kernel.response",
"listener": "Symfony\\Component\\HttpKernel\\EventListener\\ErrorListener::removeCspHeader"
}
|
| DEBUG 06:17:09 | event |
Notified event "kernel.response" to listener "Symfony\Bundle\WebProfilerBundle\EventListener\WebDebugToolbarListener::onKernelResponse". {
"event": "kernel.response",
"listener": "Symfony\\Bundle\\WebProfilerBundle\\EventListener\\WebDebugToolbarListener::onKernelResponse"
}
|
| DEBUG 06:17:09 | event |
Notified event "kernel.response" to listener "Symfony\Component\HttpKernel\EventListener\DisallowRobotsIndexingListener::onResponse". {
"event": "kernel.response",
"listener": "Symfony\\Component\\HttpKernel\\EventListener\\DisallowRobotsIndexingListener::onResponse"
}
|
| DEBUG 06:17:09 | event |
Notified event "kernel.response" to listener "Symfony\Component\HttpKernel\EventListener\SessionListener::onKernelResponse". {
"event": "kernel.response",
"listener": "Symfony\\Component\\HttpKernel\\EventListener\\SessionListener::onKernelResponse"
}
|
| DEBUG 06:17:09 | event |
Notified event "kernel.response" to listener "App\EventSubscriber\HttpLogSubscriber::onResponse". {
"event": "kernel.response",
"listener": "App\\EventSubscriber\\HttpLogSubscriber::onResponse"
}
|
| DEBUG 06:17:09 | event |
Notified event "kernel.finish_request" to listener "Symfony\Component\HttpKernel\EventListener\LocaleListener::onKernelFinishRequest". {
"event": "kernel.finish_request",
"listener": "Symfony\\Component\\HttpKernel\\EventListener\\LocaleListener::onKernelFinishRequest"
}
|
| DEBUG 06:17:09 | event |
Notified event "kernel.finish_request" to listener "Symfony\Component\HttpKernel\EventListener\RouterListener::onKernelFinishRequest". {
"event": "kernel.finish_request",
"listener": "Symfony\\Component\\HttpKernel\\EventListener\\RouterListener::onKernelFinishRequest"
}
|
| DEBUG 06:17:09 | event |
Notified event "kernel.finish_request" to listener "Symfony\Bundle\SecurityBundle\Debug\TraceableFirewallListener::onKernelFinishRequest". {
"event": "kernel.finish_request",
"listener": "Symfony\\Bundle\\SecurityBundle\\Debug\\TraceableFirewallListener::onKernelFinishRequest"
}
|
| DEBUG 06:17:09 | event |
Notified event "kernel.finish_request" to listener "Symfony\WebpackEncoreBundle\EventListener\ResetAssetsEventListener::resetAssets". {
"event": "kernel.finish_request",
"listener": "Symfony\\WebpackEncoreBundle\\EventListener\\ResetAssetsEventListener::resetAssets"
}
|
| DEBUG 06:17:09 | event |
Notified event "kernel.finish_request" to listener "Symfony\Component\HttpKernel\EventListener\LocaleAwareListener::onKernelFinishRequest". {
"event": "kernel.finish_request",
"listener": "Symfony\\Component\\HttpKernel\\EventListener\\LocaleAwareListener::onKernelFinishRequest"
}
|
| DEBUG 06:17:09 | event |
Notified event "kernel.request" to listener "Symfony\Component\HttpKernel\EventListener\DebugHandlersListener::configure". {
"event": "kernel.request",
"listener": "Symfony\\Component\\HttpKernel\\EventListener\\DebugHandlersListener::configure"
}
|
| DEBUG 06:17:09 | event |
Notified event "kernel.request" to listener "App\EventSubscriber\HttpLogSubscriber::onRequest". {
"event": "kernel.request",
"listener": "App\\EventSubscriber\\HttpLogSubscriber::onRequest"
}
|
| DEBUG 06:17:09 | event |
Notified event "kernel.request" to listener "Stof\DoctrineExtensionsBundle\EventListener\IpTraceListener::onKernelRequest". {
"event": "kernel.request",
"listener": "Stof\\DoctrineExtensionsBundle\\EventListener\\IpTraceListener::onKernelRequest"
}
|
| DEBUG 06:17:09 | event |
Notified event "kernel.request" to listener "Symfony\Component\HttpKernel\EventListener\ValidateRequestListener::onKernelRequest". {
"event": "kernel.request",
"listener": "Symfony\\Component\\HttpKernel\\EventListener\\ValidateRequestListener::onKernelRequest"
}
|
| DEBUG 06:17:09 | event |
Notified event "kernel.request" to listener "Symfony\Bridge\Doctrine\Middleware\IdleConnection\Listener::onKernelRequest". {
"event": "kernel.request",
"listener": "Symfony\\Bridge\\Doctrine\\Middleware\\IdleConnection\\Listener::onKernelRequest"
}
|
| DEBUG 06:17:09 | event |
Notified event "kernel.request" to listener "Symfony\Component\HttpKernel\EventListener\SessionListener::onKernelRequest". {
"event": "kernel.request",
"listener": "Symfony\\Component\\HttpKernel\\EventListener\\SessionListener::onKernelRequest"
}
|
| DEBUG 06:17:09 | event |
Notified event "kernel.request" to listener "Symfony\Component\HttpKernel\EventListener\LocaleListener::setDefaultLocale". {
"event": "kernel.request",
"listener": "Symfony\\Component\\HttpKernel\\EventListener\\LocaleListener::setDefaultLocale"
}
|
| DEBUG 06:17:09 | event |
Notified event "kernel.request" to listener "Symfony\Component\HttpKernel\EventListener\FragmentListener::onKernelRequest". {
"event": "kernel.request",
"listener": "Symfony\\Component\\HttpKernel\\EventListener\\FragmentListener::onKernelRequest"
}
|
| DEBUG 06:17:09 | event |
Notified event "kernel.request" to listener "Symfony\Component\HttpKernel\EventListener\RouterListener::onKernelRequest". {
"event": "kernel.request",
"listener": "Symfony\\Component\\HttpKernel\\EventListener\\RouterListener::onKernelRequest"
}
|
| DEBUG 06:17:09 | event |
Notified event "kernel.request" to listener "Symfony\Component\HttpKernel\EventListener\LocaleListener::onKernelRequest". {
"event": "kernel.request",
"listener": "Symfony\\Component\\HttpKernel\\EventListener\\LocaleListener::onKernelRequest"
}
|
| DEBUG 06:17:09 | event |
Notified event "kernel.request" to listener "Symfony\Component\HttpKernel\EventListener\LocaleAwareListener::onKernelRequest". {
"event": "kernel.request",
"listener": "Symfony\\Component\\HttpKernel\\EventListener\\LocaleAwareListener::onKernelRequest"
}
|
| DEBUG 06:17:09 | event |
Notified event "kernel.request" to listener "Symfony\Bundle\SecurityBundle\Debug\TraceableFirewallListener::configureLogoutUrlGenerator". {
"event": "kernel.request",
"listener": "Symfony\\Bundle\\SecurityBundle\\Debug\\TraceableFirewallListener::configureLogoutUrlGenerator"
}
|
| DEBUG 06:17:09 | event |
Notified event "kernel.request" to listener "Symfony\Bundle\SecurityBundle\Debug\TraceableFirewallListener::onKernelRequest". {
"event": "kernel.request",
"listener": "Symfony\\Bundle\\SecurityBundle\\Debug\\TraceableFirewallListener::onKernelRequest"
}
|
| DEBUG 06:17:09 | event |
Notified event "kernel.request" to listener "Knp\Bundle\PaginatorBundle\Subscriber\SlidingPaginationSubscriber::onKernelRequest". {
"event": "kernel.request",
"listener": "Knp\\Bundle\\PaginatorBundle\\Subscriber\\SlidingPaginationSubscriber::onKernelRequest"
}
|
| DEBUG 06:17:09 | event |
Notified event "kernel.request" to listener "Stof\DoctrineExtensionsBundle\EventListener\BlameListener::onKernelRequest". {
"event": "kernel.request",
"listener": "Stof\\DoctrineExtensionsBundle\\EventListener\\BlameListener::onKernelRequest"
}
|
| DEBUG 06:17:09 | event |
Notified event "kernel.controller" to listener "Symfony\Bundle\FrameworkBundle\DataCollector\RouterDataCollector::onKernelController". {
"event": "kernel.controller",
"listener": "Symfony\\Bundle\\FrameworkBundle\\DataCollector\\RouterDataCollector::onKernelController"
}
|
| DEBUG 06:17:09 | event |
Notified event "kernel.controller" to listener "Symfony\Component\HttpKernel\DataCollector\RequestDataCollector::onKernelController". {
"event": "kernel.controller",
"listener": "Symfony\\Component\\HttpKernel\\DataCollector\\RequestDataCollector::onKernelController"
}
|
| DEBUG 06:17:09 | event |
Notified event "kernel.controller" to listener "DH\AuditorBundle\Event\ViewerEventSubscriber::onKernelController". {
"event": "kernel.controller",
"listener": "DH\\AuditorBundle\\Event\\ViewerEventSubscriber::onKernelController"
}
|
| DEBUG 06:17:09 | event |
Notified event "kernel.controller_arguments" to listener "Symfony\Component\Security\Http\EventListener\IsCsrfTokenValidAttributeListener::onKernelControllerArguments". {
"event": "kernel.controller_arguments",
"listener": "Symfony\\Component\\Security\\Http\\EventListener\\IsCsrfTokenValidAttributeListener::onKernelControllerArguments"
}
|
| DEBUG 06:17:09 | event |
Notified event "kernel.controller_arguments" to listener "App\EventSubscriber\PermissionsOnlySubscriber::onKernelControllerArguments". {
"event": "kernel.controller_arguments",
"listener": "App\\EventSubscriber\\PermissionsOnlySubscriber::onKernelControllerArguments"
}
|
| DEBUG 06:17:09 | event |
Notified event "kernel.controller_arguments" to listener "Symfony\Component\Security\Http\EventListener\IsGrantedAttributeListener::onKernelControllerArguments". {
"event": "kernel.controller_arguments",
"listener": "Symfony\\Component\\Security\\Http\\EventListener\\IsGrantedAttributeListener::onKernelControllerArguments"
}
|
| DEBUG 06:17:09 | event |
Notified event "kernel.controller_arguments" to listener "Symfony\Component\HttpKernel\EventListener\CacheAttributeListener::onKernelControllerArguments". {
"event": "kernel.controller_arguments",
"listener": "Symfony\\Component\\HttpKernel\\EventListener\\CacheAttributeListener::onKernelControllerArguments"
}
|
| DEBUG 06:17:09 | event |
Notified event "kernel.controller_arguments" to listener "ContainerPS6TrTu\RequestPayloadValueResolverGhost01ca9cc::onKernelControllerArguments". {
"event": "kernel.controller_arguments",
"listener": "ContainerPS6TrTu\\RequestPayloadValueResolverGhost01ca9cc::onKernelControllerArguments"
}
|
| DEBUG 06:17:09 | event |
Notified event "kernel.controller_arguments" to listener "Symfony\Component\HttpKernel\EventListener\ErrorListener::onControllerArguments". {
"event": "kernel.controller_arguments",
"listener": "Symfony\\Component\\HttpKernel\\EventListener\\ErrorListener::onControllerArguments"
}
|
Stack Trace
|
ClientException
|
|---|
Symfony\Component\HttpClient\Exception\ClientException:
HTTP/2 401 returned for "https://api.openai.com/v1/chat/completions".
at vendor/symfony/http-client/Response/TraceableResponse.php:209
at Symfony\Component\HttpClient\Response\TraceableResponse->checkStatusCode(401)
(vendor/symfony/http-client/Response/TraceableResponse.php:100)
at Symfony\Component\HttpClient\Response\TraceableResponse->getContent()
(src/Domain/Services/AI/OpenAiAPIService.php:72)
at App\Domain\Services\AI\OpenAiAPIService->{closure:App\Domain\Services\AI\OpenAiAPIService::analyseKPI():58}(object(CacheItem), true)
(vendor/symfony/cache/Adapter/TraceableAdapter.php:48)
at Symfony\Component\Cache\Adapter\TraceableAdapter->{closure:Symfony\Component\Cache\Adapter\TraceableAdapter::get():45}(object(CacheItem), true)
(vendor/symfony/cache/LockRegistry.php:111)
at Symfony\Component\Cache\LockRegistry::compute(object(Closure), object(CacheItem), true, object(FilesystemAdapter), object(Closure), object(Logger))
(vendor/symfony/cache/Traits/ContractsTrait.php:102)
at Symfony\Component\Cache\Adapter\AbstractAdapter->{closure:Symfony\Component\Cache\Traits\ContractsTrait::doGet():85}(object(CacheItem), true)
(vendor/symfony/cache-contracts/CacheTrait.php:64)
at Symfony\Component\Cache\Adapter\AbstractAdapter->contractsGet(object(FilesystemAdapter), '011faf1e180fe65f70e532d1ea39d0e6', object(Closure), 1.0, array(), object(Logger))
(vendor/symfony/cache/Traits/ContractsTrait.php:85)
at Symfony\Component\Cache\Adapter\AbstractAdapter->doGet(object(FilesystemAdapter), '011faf1e180fe65f70e532d1ea39d0e6', object(Closure), 1.0, array())
(vendor/symfony/cache-contracts/CacheTrait.php:30)
at Symfony\Component\Cache\Adapter\AbstractAdapter->get('011faf1e180fe65f70e532d1ea39d0e6', object(Closure), null, array())
(vendor/symfony/cache/Adapter/TraceableAdapter.php:53)
at Symfony\Component\Cache\Adapter\TraceableAdapter->get('011faf1e180fe65f70e532d1ea39d0e6', object(Closure))
(src/Domain/Services/AI/OpenAiAPIService.php:58)
at App\Domain\Services\AI\OpenAiAPIService->analyseKPI('Tu es un expert en suivi-évaluation de projets gouvernementaux. Je vais te fournir un ensemble de données (KPIs globaux, projets en retard, incidents...).Génère une liste d\'insights structurés en JSON respectant strictement le modèle suivant :[ { "observation": "[emoji] Titre de l’observation (phrase courte)", "description": "Texte explicatif ou analyse en une phrase", "actionable_steps": ["Étape concrète à envisager", "Autre action à prendre"], "keywords": ["mot-clé-1", "mot-clé-2"] }]Ne commente pas. Ne fournis aucun texte hors du tableau JSON.Voici les données :- execution_rate : 1.28 (metadata : {"value":1.28,"period":"2025-09","variation":0,"department":null,"performance":0,"project_count":1})- milestone_processing_delay : 0 (metadata : {"value":0,"department":null,"fill_delay":13.03,"approve_delay":0,"validate_delay":0,"fill_trend_delay":0,"approve_trend_delay":0,"validate_trend_delay":0})- milestone_performance_score : 0 (metadata : {"value":0,"metadata":{"raw_delays":{"fill_delay":0,"approve_delay":0,"validate_delay":0},"weighted_delay":0},"department":null})- top_5_projects : 0 (metadata : {"value":0,"metadata":[],"department":null})- flop_5_projects : 0 (metadata : {"value":0,"metadata":[{"id":1,"owner":"SENTER\\/DG","acronym":"MEPDU","gap_avg":-98.72,"project":"Mise en place d\'une usine de Traverse en B\\u00e9ton","performance":1.28,"actual_progress_avg":1.28,"planned_progress_avg":100,"relative_performance":1.28}],"department":null})- projects_performance : 1.28 (metadata : {"trend":0,"value":1.28,"period":"2025-09","variation":0,"department":null,"project_count":1,"project_count_status":"stable","delayed_project_count":1,"on_time_project_count":0})- budget_allocated : 10000000000 (metadata : {"unit":"FCFA","value":10000000000,"department":null})- budget_committed : 2603000 (metadata : {"unit":"FCFA","value":2603000,"department":null})- budget_disbursed : 0 (metadata : {"unit":"FCFA","value":0,"department":null})- budget_execution_rate : 0 (metadata : {"unit":"%","value":0,"department":null})Rédige les insights sous forme de liste avec des emojis et des mots-clés utiles.')
(src/Domain/UseCase/AI/DashboardInsightUseCase.php:20)
at App\Domain\UseCase\AI\DashboardInsightUseCase->execute(array(object(DashboardKPI), object(DashboardKPI), object(DashboardKPI), object(DashboardKPI), object(DashboardKPI), object(DashboardKPI), object(DashboardKPI), object(DashboardKPI), object(DashboardKPI), object(DashboardKPI)))
(src/Controller/Dashboard/DashboardController.php:113)
at App\Controller\Dashboard\DashboardController->dashboardInsights(object(Request), object(DashboardInsightUseCase))
(vendor/symfony/http-kernel/HttpKernel.php:183)
at Symfony\Component\HttpKernel\HttpKernel->handleRaw(object(Request), 1)
(vendor/symfony/http-kernel/HttpKernel.php:76)
at Symfony\Component\HttpKernel\HttpKernel->handle(object(Request), 1, true)
(vendor/symfony/http-kernel/Kernel.php:182)
at Symfony\Component\HttpKernel\Kernel->handle(object(Request))
(vendor/symfony/runtime/Runner/Symfony/HttpKernelRunner.php:35)
at Symfony\Component\Runtime\Runner\Symfony\HttpKernelRunner->run()
(vendor/autoload_runtime.php:29)
at require_once('/home/batrams/Kplan/vendor/autoload_runtime.php')
(public/index.php:5)
|