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