23 lines
1.1 KiB
PHP
23 lines
1.1 KiB
PHP
<?php
|
|
namespace App\Http\Controllers\Child;
|
|
use App\Http\Controllers\Controller;
|
|
use App\Models\Subject;
|
|
use App\Models\QuestionAttempt;
|
|
class DashboardController extends Controller {
|
|
public function index() {
|
|
$user = auth()->user();
|
|
$level = $user->level();
|
|
$streak = $user->currentStreak();
|
|
$subjects = Subject::withCount(['questions as total' => fn($q) => $q->where('active',true)])->get()
|
|
->map(function($s) use ($user) {
|
|
$s->correct = QuestionAttempt::whereHas('question', fn($q) => $q->where('subject_id',$s->id))
|
|
->where('user_id',$user->id)->where('is_correct',true)->count();
|
|
return $s;
|
|
});
|
|
$recentAttempts = QuestionAttempt::with('question.subject')
|
|
->where('user_id',$user->id)->latest('id')->take(5)->get();
|
|
$pendingRedemptions = $user->redemptions()->where('status','pending')->count();
|
|
return view('child.dashboard', compact('user','level','streak','subjects','recentAttempts','pendingRedemptions'));
|
|
}
|
|
}
|