denyAccessUnlessGranted('ROLE_GESTIONNAIRE'); $slot = $this->entityManager->find(ComposantProductSlot::class, $id); if (!$slot) { return $this->json(['success' => false, 'error' => 'Slot not found.'], 404); } $payload = json_decode($request->getContent(), true); if (!is_array($payload)) { return $this->json(['success' => false, 'error' => 'Invalid JSON payload.'], 400); } if (array_key_exists('selectedProductId', $payload)) { if (null === $payload['selectedProductId']) { $slot->setSelectedProduct(null); } else { $product = $this->entityManager->find(Product::class, $payload['selectedProductId']); $slot->setSelectedProduct($product); } } $this->entityManager->flush(); return $this->json([ 'success' => true, 'id' => $slot->getId(), 'selectedProductId' => $slot->getSelectedProduct()?->getId(), ]); } }