diff --git a/src/Mcp/Tool/Composant/CreateComposantTool.php b/src/Mcp/Tool/Composant/CreateComposantTool.php index 290760c..2ab2b02 100644 --- a/src/Mcp/Tool/Composant/CreateComposantTool.php +++ b/src/Mcp/Tool/Composant/CreateComposantTool.php @@ -5,6 +5,7 @@ declare(strict_types=1); namespace App\Mcp\Tool\Composant; use App\Entity\Composant; +use App\Entity\ComposantConstructeurLink; use App\Mcp\Tool\McpToolHelper; use App\Repository\ConstructeurRepository; use App\Repository\ModelTypeRepository; @@ -67,7 +68,10 @@ class CreateComposantTool if (!$c) { $this->mcpError('not_found', "Constructeur not found: {$cId}"); } - $composant->addConstructeur($c); + $link = new ComposantConstructeurLink(); + $link->setComposant($composant); + $link->setConstructeur($c); + $this->em->persist($link); } $this->em->persist($composant); diff --git a/src/Mcp/Tool/Composant/GetComposantTool.php b/src/Mcp/Tool/Composant/GetComposantTool.php index c3a6b94..81491e3 100644 --- a/src/Mcp/Tool/Composant/GetComposantTool.php +++ b/src/Mcp/Tool/Composant/GetComposantTool.php @@ -30,10 +30,11 @@ class GetComposantTool } $constructeurs = []; - foreach ($composant->getConstructeurs() as $c) { + foreach ($composant->getConstructeurLinks() as $link) { $constructeurs[] = [ - 'id' => $c->getId(), - 'name' => $c->getName(), + 'id' => $link->getConstructeur()->getId(), + 'name' => $link->getConstructeur()->getName(), + 'supplierReference' => $link->getSupplierReference(), ]; } diff --git a/src/Mcp/Tool/Composant/UpdateComposantTool.php b/src/Mcp/Tool/Composant/UpdateComposantTool.php index c7c7951..1fef861 100644 --- a/src/Mcp/Tool/Composant/UpdateComposantTool.php +++ b/src/Mcp/Tool/Composant/UpdateComposantTool.php @@ -4,6 +4,7 @@ declare(strict_types=1); namespace App\Mcp\Tool\Composant; +use App\Entity\ComposantConstructeurLink; use App\Mcp\Tool\McpToolHelper; use App\Repository\ComposantRepository; use App\Repository\ConstructeurRepository; @@ -75,15 +76,18 @@ class UpdateComposantTool } if (null !== $constructeurIds) { - foreach ($composant->getConstructeurs()->toArray() as $existing) { - $composant->removeConstructeur($existing); + foreach ($composant->getConstructeurLinks()->toArray() as $existing) { + $this->em->remove($existing); } foreach ($constructeurIds as $cId) { $c = $this->constructeurs->find($cId); if (!$c) { $this->mcpError('not_found', "Constructeur not found: {$cId}"); } - $composant->addConstructeur($c); + $link = new ComposantConstructeurLink(); + $link->setComposant($composant); + $link->setConstructeur($c); + $this->em->persist($link); } } diff --git a/src/Mcp/Tool/Machine/CreateMachineTool.php b/src/Mcp/Tool/Machine/CreateMachineTool.php index 93f3037..b782108 100644 --- a/src/Mcp/Tool/Machine/CreateMachineTool.php +++ b/src/Mcp/Tool/Machine/CreateMachineTool.php @@ -5,6 +5,7 @@ declare(strict_types=1); namespace App\Mcp\Tool\Machine; use App\Entity\Machine; +use App\Entity\MachineConstructeurLink; use App\Mcp\Tool\McpToolHelper; use App\Repository\ConstructeurRepository; use App\Repository\SiteRepository; @@ -61,7 +62,10 @@ class CreateMachineTool if (!$c) { $this->mcpError('not_found', "Constructeur not found: {$cId}"); } - $machine->addConstructeur($c); + $link = new MachineConstructeurLink(); + $link->setMachine($machine); + $link->setConstructeur($c); + $this->em->persist($link); } $this->em->persist($machine); diff --git a/src/Mcp/Tool/Machine/GetMachineTool.php b/src/Mcp/Tool/Machine/GetMachineTool.php index 8dcd921..7970daf 100644 --- a/src/Mcp/Tool/Machine/GetMachineTool.php +++ b/src/Mcp/Tool/Machine/GetMachineTool.php @@ -30,10 +30,11 @@ class GetMachineTool } $constructeurs = []; - foreach ($machine->getConstructeurs() as $c) { + foreach ($machine->getConstructeurLinks() as $link) { $constructeurs[] = [ - 'id' => $c->getId(), - 'name' => $c->getName(), + 'id' => $link->getConstructeur()->getId(), + 'name' => $link->getConstructeur()->getName(), + 'supplierReference' => $link->getSupplierReference(), ]; } diff --git a/src/Mcp/Tool/Machine/UpdateMachineTool.php b/src/Mcp/Tool/Machine/UpdateMachineTool.php index 2e00aa5..b055bd3 100644 --- a/src/Mcp/Tool/Machine/UpdateMachineTool.php +++ b/src/Mcp/Tool/Machine/UpdateMachineTool.php @@ -4,6 +4,7 @@ declare(strict_types=1); namespace App\Mcp\Tool\Machine; +use App\Entity\MachineConstructeurLink; use App\Mcp\Tool\McpToolHelper; use App\Repository\ConstructeurRepository; use App\Repository\MachineRepository; @@ -67,15 +68,18 @@ class UpdateMachineTool } if (null !== $constructeurIds) { - foreach ($machine->getConstructeurs()->toArray() as $existing) { - $machine->removeConstructeur($existing); + foreach ($machine->getConstructeurLinks()->toArray() as $existing) { + $this->em->remove($existing); } foreach ($constructeurIds as $cId) { $c = $this->constructeurs->find($cId); if (!$c) { $this->mcpError('not_found', "Constructeur not found: {$cId}"); } - $machine->addConstructeur($c); + $link = new MachineConstructeurLink(); + $link->setMachine($machine); + $link->setConstructeur($c); + $this->em->persist($link); } } diff --git a/src/Mcp/Tool/Piece/CreatePieceTool.php b/src/Mcp/Tool/Piece/CreatePieceTool.php index 6286404..994dafb 100644 --- a/src/Mcp/Tool/Piece/CreatePieceTool.php +++ b/src/Mcp/Tool/Piece/CreatePieceTool.php @@ -5,6 +5,7 @@ declare(strict_types=1); namespace App\Mcp\Tool\Piece; use App\Entity\Piece; +use App\Entity\PieceConstructeurLink; use App\Mcp\Tool\McpToolHelper; use App\Repository\ConstructeurRepository; use App\Repository\ModelTypeRepository; @@ -67,7 +68,10 @@ class CreatePieceTool if (!$c) { $this->mcpError('not_found', "Constructeur not found: {$cId}"); } - $piece->addConstructeur($c); + $link = new PieceConstructeurLink(); + $link->setPiece($piece); + $link->setConstructeur($c); + $this->em->persist($link); } $this->em->persist($piece); diff --git a/src/Mcp/Tool/Piece/GetPieceTool.php b/src/Mcp/Tool/Piece/GetPieceTool.php index 5eab4ea..aa87080 100644 --- a/src/Mcp/Tool/Piece/GetPieceTool.php +++ b/src/Mcp/Tool/Piece/GetPieceTool.php @@ -30,10 +30,11 @@ class GetPieceTool } $constructeurs = []; - foreach ($piece->getConstructeurs() as $c) { + foreach ($piece->getConstructeurLinks() as $link) { $constructeurs[] = [ - 'id' => $c->getId(), - 'name' => $c->getName(), + 'id' => $link->getConstructeur()->getId(), + 'name' => $link->getConstructeur()->getName(), + 'supplierReference' => $link->getSupplierReference(), ]; } diff --git a/src/Mcp/Tool/Piece/UpdatePieceTool.php b/src/Mcp/Tool/Piece/UpdatePieceTool.php index 19440cb..87a898d 100644 --- a/src/Mcp/Tool/Piece/UpdatePieceTool.php +++ b/src/Mcp/Tool/Piece/UpdatePieceTool.php @@ -4,6 +4,7 @@ declare(strict_types=1); namespace App\Mcp\Tool\Piece; +use App\Entity\PieceConstructeurLink; use App\Mcp\Tool\McpToolHelper; use App\Repository\ConstructeurRepository; use App\Repository\ModelTypeRepository; @@ -75,15 +76,18 @@ class UpdatePieceTool } if (null !== $constructeurIds) { - foreach ($piece->getConstructeurs()->toArray() as $existing) { - $piece->removeConstructeur($existing); + foreach ($piece->getConstructeurLinks()->toArray() as $existing) { + $this->em->remove($existing); } foreach ($constructeurIds as $cId) { $c = $this->constructeurs->find($cId); if (!$c) { $this->mcpError('not_found', "Constructeur not found: {$cId}"); } - $piece->addConstructeur($c); + $link = new PieceConstructeurLink(); + $link->setPiece($piece); + $link->setConstructeur($c); + $this->em->persist($link); } } diff --git a/src/Mcp/Tool/Product/CreateProductTool.php b/src/Mcp/Tool/Product/CreateProductTool.php index 0d4c523..896948c 100644 --- a/src/Mcp/Tool/Product/CreateProductTool.php +++ b/src/Mcp/Tool/Product/CreateProductTool.php @@ -5,6 +5,7 @@ declare(strict_types=1); namespace App\Mcp\Tool\Product; use App\Entity\Product; +use App\Entity\ProductConstructeurLink; use App\Mcp\Tool\McpToolHelper; use App\Repository\ConstructeurRepository; use App\Repository\ModelTypeRepository; @@ -63,7 +64,10 @@ class CreateProductTool if (!$c) { $this->mcpError('not_found', "Constructeur not found: {$cId}"); } - $product->addConstructeur($c); + $link = new ProductConstructeurLink(); + $link->setProduct($product); + $link->setConstructeur($c); + $this->em->persist($link); } $this->em->persist($product); diff --git a/src/Mcp/Tool/Product/GetProductTool.php b/src/Mcp/Tool/Product/GetProductTool.php index f003d0f..96f7c9f 100644 --- a/src/Mcp/Tool/Product/GetProductTool.php +++ b/src/Mcp/Tool/Product/GetProductTool.php @@ -30,10 +30,11 @@ class GetProductTool } $constructeurs = []; - foreach ($product->getConstructeurs() as $c) { + foreach ($product->getConstructeurLinks() as $link) { $constructeurs[] = [ - 'id' => $c->getId(), - 'name' => $c->getName(), + 'id' => $link->getConstructeur()->getId(), + 'name' => $link->getConstructeur()->getName(), + 'supplierReference' => $link->getSupplierReference(), ]; } diff --git a/src/Mcp/Tool/Product/UpdateProductTool.php b/src/Mcp/Tool/Product/UpdateProductTool.php index 2e25777..a9e4dc3 100644 --- a/src/Mcp/Tool/Product/UpdateProductTool.php +++ b/src/Mcp/Tool/Product/UpdateProductTool.php @@ -4,6 +4,7 @@ declare(strict_types=1); namespace App\Mcp\Tool\Product; +use App\Entity\ProductConstructeurLink; use App\Mcp\Tool\McpToolHelper; use App\Repository\ConstructeurRepository; use App\Repository\ModelTypeRepository; @@ -71,15 +72,18 @@ class UpdateProductTool } if (null !== $constructeurIds) { - foreach ($product->getConstructeurs()->toArray() as $existing) { - $product->removeConstructeur($existing); + foreach ($product->getConstructeurLinks()->toArray() as $existing) { + $this->em->remove($existing); } foreach ($constructeurIds as $cId) { $c = $this->constructeurs->find($cId); if (!$c) { $this->mcpError('not_found', "Constructeur not found: {$cId}"); } - $product->addConstructeur($c); + $link = new ProductConstructeurLink(); + $link->setProduct($product); + $link->setConstructeur($c); + $this->em->persist($link); } }