input('days', 7); $metrics = [ 'api' => $this->metricsService->getApiMetrics($days), 'fetch' => $this->metricsService->getJobFetchMetrics($days), 'analytics' => $this->metricsService->getAnalyticsMetrics($days), 'health' => $this->metricsService->getSystemHealth(), ]; return view('admin.dashboard', compact('metrics', 'days')); } /** * Display API logs */ public function apiLogs(Request $request) { $query = ApiLog::with('source') ->orderBy('created_at', 'desc'); if ($request->has('source_id')) { $query->where('job_source_id', $request->source_id); } if ($request->has('status')) { $status = $request->status === 'success'; $query->where('success', $status); } $logs = $query->paginate(50); return view('admin.api-logs', compact('logs')); } /** * Display job fetch logs */ public function fetchLogs(Request $request) { $query = JobFetchLog::with('source') ->orderBy('created_at', 'desc'); if ($request->has('source_id')) { $query->where('job_source_id', $request->source_id); } if ($request->has('status')) { $status = $request->status === 'success'; $query->where('success', $status); } $logs = $query->paginate(50); return view('admin.fetch-logs', compact('logs')); } }