From 018c7662a39b10281125730edcf5c6dccb1b7a10 Mon Sep 17 00:00:00 2001 From: Dolo Date: Mon, 13 Apr 2026 13:18:15 +0200 Subject: [PATCH] Neuaufbau des Repositories --- app/Http/Controllers/DashboardController.php | 53 ++++++++++++++++++++ app/Http/Controllers/TrackingController.php | 14 ------ 2 files changed, 53 insertions(+), 14 deletions(-) create mode 100644 app/Http/Controllers/DashboardController.php diff --git a/app/Http/Controllers/DashboardController.php b/app/Http/Controllers/DashboardController.php new file mode 100644 index 0000000..8e9fe03 --- /dev/null +++ b/app/Http/Controllers/DashboardController.php @@ -0,0 +1,53 @@ +count(); + $totalClicks = BonusStat::where('type', 'click')->count(); + + // Stats per bonus + $bonusStats = Bonus::select('id', 'name') + ->withCount([ + 'stats as views_count' => function ($query) { + $query->where('type', 'view'); + }, + 'stats as clicks_count' => function ($query) { + $query->where('type', 'click'); + } + ]) + ->orderBy('clicks_count', 'desc') + ->get(); + + // Last 7 days activity + $dailyActivity = BonusStat::select( + DB::raw('DATE(created_at) as date'), + DB::raw('SUM(CASE WHEN type = "view" THEN 1 ELSE 0 END) as views'), + DB::raw('SUM(CASE WHEN type = "click" THEN 1 ELSE 0 END) as clicks') + ) + ->where('created_at', '>=', now()->subDays(7)) + ->groupBy('date') + ->orderBy('date') + ->get(); + + return Inertia::render('Dashboard', [ + 'stats' => [ + 'bonusesCount' => $bonusesCount, + 'totalViews' => $totalViews, + 'totalClicks' => $totalClicks, + 'bonusStats' => $bonusStats, + 'dailyActivity' => $dailyActivity, + ] + ]); + } +} diff --git a/app/Http/Controllers/TrackingController.php b/app/Http/Controllers/TrackingController.php index 8c0736c..142b922 100644 --- a/app/Http/Controllers/TrackingController.php +++ b/app/Http/Controllers/TrackingController.php @@ -22,18 +22,4 @@ class TrackingController extends Controller return response()->json(['success' => true]); } - - public function trackSocial(Request $request) - { - $validated = $request->validate([ - 'platform' => 'required|in:twitch,instagram,kick', - ]); - - BonusStat::create([ - 'type' => 'social_' . $validated['platform'], - 'ip_address' => $request->ip(), - ]); - - return response()->json(['success' => true]); - } }