tenantIntegrationService = $tenantIntegrationService; } public function index(string $tenantCode) { return response()->json($this->tenantIntegrationService->getAllForTenant($tenantCode)); } public function show(string $tenantCode, string $integrationCode) { $integration = $this->tenantIntegrationService->getTenantIntegration($tenantCode, $integrationCode); if (! $integration) { return response()->json([ 'code' => 'integration.not_configured', 'message' => __('api.integration.not_configured'), ], 404); } return response()->json($integration); } public function store(StoreTenantIntegrationRequest $request, string $tenantCode, string $integrationCode) { $integration = Integration::where('integration_code', $integrationCode)->firstOrFail(); try { $this->tenantIntegrationService->updateOrCreateIntegration( $tenantCode, $integration, $request->input('integration_data', []) ); return response()->json([ 'code' => 'integration.configured', 'message' => __('api.integration.configured'), ]); } catch (\Exception $e) { return response()->json([ 'code' => 'integration.validation_failed', 'message' => __('api.integration.validation_failed', ['error' => $e->getMessage()]), ], 400); } } }