<?php namespace App\Http\Controllers\V1\Customer\General; use App\Http\Controllers\Controller; use App\Models\Estimate; use App\Models\Invoice; use App\Models\Payment; use Illuminate\Http\Request; use Illuminate\Support\Facades\Auth; class DashboardController extends Controller { /** * Handle the incoming request. * * @return \Illuminate\Http\Response */ public function __invoke(Request $request) { $user = Auth::guard('customer')->user(); $amountDue = Invoice::whereCustomer($user->id) ->where('status', '<>', 'DRAFT') ->sum('due_amount'); $invoiceCount = Invoice::whereCustomer($user->id) ->where('status', '<>', 'DRAFT') ->count(); $estimatesCount = Estimate::whereCustomer($user->id) ->where('status', '<>', 'DRAFT') ->count(); $paymentCount = Payment::whereCustomer($user->id) ->count(); return response()->json([ 'due_amount' => $amountDue, 'recentInvoices' => Invoice::whereCustomer($user->id)->where('status', '<>', 'DRAFT')->take(5)->latest()->get(), 'recentEstimates' => Estimate::whereCustomer($user->id)->where('status', '<>', 'DRAFT')->take(5)->latest()->get(), 'invoice_count' => $invoiceCount, 'estimate_count' => $estimatesCount, 'payment_count' => $paymentCount, ]); } }