52 lines
1.5 KiB
PHP
52 lines
1.5 KiB
PHP
<?php
|
|||
|
|
|
||
|
|
namespace App\Http\Controllers;
|
||
|
|
|
||
|
|
use Illuminate\Http\Request;
|
||
|
|
use App\Models\SummaryReport;
|
||
|
|
use App\Models\SummaryRequest;
|
||
|
|
|
||
|
|
class HomeController extends Controller
|
||
|
|
{
|
||
|
|
/**
|
||
|
|
* Create a new controller instance.
|
||
|
|
*
|
||
|
|
* @return void
|
||
|
|
*/
|
||
|
|
public function __construct()
|
||
|
|
{
|
||
|
|
$this->middleware('auth');
|
||
|
|
}
|
||
|
|
|
||
|
|
/**
|
||
|
|
* Show the user dashboard with stats.
|
||
|
|
*/
|
||
|
|
public function index(Request $request)
|
||
|
|
{
|
||
|
|
$user = $request->user();
|
||
|
|
|
||
|
|
// Aggregate counts
|
||
|
|
$readlistCount = $user->readlistBooks()->count();
|
||
|
|
$readlistWithSummaryCount = $user->readlistBooks()->whereHas('summary')->count();
|
||
|
|
$reviewsCount = $user->reviews()->count();
|
||
|
|
$reportsCount = SummaryReport::where('user_id', $user->id)->count();
|
||
|
|
$requestsCount = SummaryRequest::where('user_id', $user->id)->count();
|
||
|
|
|
||
|
|
// Recent activity
|
||
|
|
$latestReadlist = $user->readlistBooks()->with(['authors', 'summary'])->orderByPivot('created_at', 'desc')->limit(5)->get();
|
||
|
|
$latestReviews = $user->reviews()->with('book')->latest()->limit(5)->get();
|
||
|
|
$latestRequests = SummaryRequest::where('user_id', $user->id)->latest()->limit(5)->get();
|
||
|
|
|
||
|
|
return view('home', compact(
|
||
|
|
'readlistCount',
|
||
|
|
'readlistWithSummaryCount',
|
||
|
|
'reviewsCount',
|
||
|
|
'reportsCount',
|
||
|
|
'requestsCount',
|
||
|
|
'latestReadlist',
|
||
|
|
'latestReviews',
|
||
|
|
'latestRequests'
|
||
|
|
));
|
||
|
|
}
|
||
|
|
}
|