where('status', 'pending') ->with(['customer:id,name', 'customer.ratings']) ->orderBy('created_at', 'desc') ->get(); // Calculate current month's earnings $currentMonthEarnings = Booking::where('tailor_id', $tailor_id) ->where('status', 'selesai') ->where('payment_status', 'paid') ->whereYear('updated_at', $now->year) ->whereMonth('updated_at', $now->month) ->sum('total_price'); // Calculate total earnings $totalEarnings = Booking::where('tailor_id', $tailor_id) ->where('status', 'selesai') ->where('payment_status', 'paid') ->sum('total_price'); // Get average rating $averageRating = DB::table('tailor_ratings') ->where('tailor_id', $tailor_id) ->avg('rating'); return $this->sendResponse([ 'incoming_bookings' => $incomingBookings, 'current_month_earnings' => $currentMonthEarnings, 'total_earnings' => $totalEarnings, 'average_rating' => round($averageRating ?? 0, 1), 'total_completed_orders' => Booking::where('tailor_id', $tailor_id) ->where('status', 'selesai') ->count() ], 'Data dashboard berhasil diambil'); } catch (\Exception $e) { return $this->sendError('Error.', ['error' => 'Terjadi kesalahan saat mengambil data dashboard'], 500); } } }