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