stockItemRepository->all(); return response()->json([ 'data' => StockItemResource::collection($items), 'status' => 'success' ]); } catch (\Exception $e) { Log::error('Error fetching stock items: ' . $e->getMessage()); return response()->json([ 'message' => 'Une erreur est survenue lors de la récupération des stocks.', 'error' => config('app.debug') ? $e->getMessage() : null, ], 500); } } /** * Store a newly created stock item. */ public function store(StoreStockItemRequest $request): JsonResponse { try { $item = $this->stockItemRepository->create($request->validated()); return response()->json([ 'data' => new StockItemResource($item), 'message' => 'Stock initialisé avec succès.', 'status' => 'success' ], 201); } catch (\Exception $e) { Log::error('Error creating stock item: ' . $e->getMessage()); return response()->json([ 'message' => 'Une erreur est survenue lors de l\'initialisation du stock.', 'error' => config('app.debug') ? $e->getMessage() : null, ], 500); } } /** * Display the specified stock item. */ public function show(string $id): JsonResponse { try { $item = $this->stockItemRepository->find((int) $id); if (!$item) { return response()->json(['message' => 'Stock non trouvé.'], 404); } return response()->json([ 'data' => new StockItemResource($item), 'status' => 'success' ]); } catch (\Exception $e) { Log::error('Error fetching stock item: ' . $e->getMessage()); return response()->json([ 'message' => 'Une erreur est survenue lors de la récupération du stock.', 'error' => config('app.debug') ? $e->getMessage() : null, ], 500); } } /** * Update the specified stock item. */ public function update(UpdateStockItemRequest $request, string $id): JsonResponse { try { $updated = $this->stockItemRepository->update((int) $id, $request->validated()); if (!$updated) { return response()->json(['message' => 'Stock non trouvé ou échec de la mise à jour.'], 404); } $item = $this->stockItemRepository->find((int) $id); return response()->json([ 'data' => new StockItemResource($item), 'message' => 'Stock mis à jour avec succès.', 'status' => 'success' ]); } catch (\Exception $e) { Log::error('Error updating stock item: ' . $e->getMessage()); return response()->json([ 'message' => 'Une erreur est survenue lors de la mise à jour du stock.', 'error' => config('app.debug') ? $e->getMessage() : null, ], 500); } } /** * Remove the specified stock item. */ public function destroy(string $id): JsonResponse { try { $deleted = $this->stockItemRepository->delete((int) $id); if (!$deleted) { return response()->json(['message' => 'Stock non trouvé ou échec de la suppression.'], 404); } return response()->json([ 'message' => 'Stock supprimé avec succès.', 'status' => 'success' ]); } catch (\Exception $e) { Log::error('Error deleting stock item: ' . $e->getMessage()); return response()->json([ 'message' => 'Une erreur est survenue lors de la suppression du stock.', 'error' => config('app.debug') ? $e->getMessage() : null, ], 500); } } }