From 2b43213ee45332e4e730c21d4c5d2dd9a85d56f8 Mon Sep 17 00:00:00 2001 From: Yoga Pangestu Date: Wed, 22 Apr 2026 20:00:24 +0700 Subject: [PATCH] refactor: import enum classes and apply PSR-12 formatting to DashboardController --- app/Http/Controllers/DashboardController.php | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/app/Http/Controllers/DashboardController.php b/app/Http/Controllers/DashboardController.php index 4caf931..37cb121 100644 --- a/app/Http/Controllers/DashboardController.php +++ b/app/Http/Controllers/DashboardController.php @@ -2,6 +2,9 @@ namespace App\Http\Controllers; +use App\Enums\OrderChannel; +use App\Enums\OrderStatus; +use App\Enums\PaymentMethod; use App\Models\Expense; use App\Models\Order; use App\Models\OrderItem; @@ -36,9 +39,9 @@ public function __invoke() // Chart Data $stats['charts'] = [ 'jam_sibuk' => $this->getJamSibuk($today, $yesterday), - 'order_by_payment' => $this->getOrderByEnum($today, 'payment_method', \App\Enums\PaymentMethod::class), - 'order_by_status' => $this->getOrderByEnum($today, 'order_status', \App\Enums\OrderStatus::class), - 'order_by_channel' => $this->getOrderByEnum($today, 'order_channel', \App\Enums\OrderChannel::class), + 'order_by_payment' => $this->getOrderByEnum($today, 'payment_method', PaymentMethod::class), + 'order_by_status' => $this->getOrderByEnum($today, 'order_status', OrderStatus::class), + 'order_by_channel' => $this->getOrderByEnum($today, 'order_channel', OrderChannel::class), 'top_products' => $this->getTopProducts($today), ]; @@ -80,9 +83,10 @@ private function getOrderByEnum($date, $column, $enumClass) ->groupBy($column) ->get(); - return $data->map(function($item) use ($column, $enumClass) { + return $data->map(function ($item) use ($column, $enumClass) { $enumValue = $item->$column; $label = $enumValue instanceof $enumClass ? $enumValue->label() : $enumValue; + return [ 'name' => $label, 'value' => $item->count, @@ -92,14 +96,14 @@ private function getOrderByEnum($date, $column, $enumClass) private function getTopProducts($date) { - return OrderItem::whereHas('order', fn($q) => $q->whereDate('created_at', $date)) + return OrderItem::whereHas('order', fn ($q) => $q->whereDate('created_at', $date)) ->with('product:id,name') ->selectRaw('product_id, sum(qty) as total_qty') ->groupBy('product_id') ->orderByDesc('total_qty') ->limit(5) ->get() - ->map(fn($item) => [ + ->map(fn ($item) => [ 'name' => $item->product->name ?? 'Unknown', 'qty' => (int) $item->total_qty, ]);