<?php
namespace App\View\Components;
use Carbon\Carbon;
use Illuminate\View\Component;
use Illuminate\Support\Facades\Auth;
use Modules\Certificate\Entities\CertificateRecord;
use Modules\CourseSetting\Entities\Course;
use Modules\Setting\Entities\StudentSetup;
use Modules\CourseSetting\Entities\CourseEnrolled;
class MyDashboardPageSection extends Component
{
public function __construct()
{
//
}
public function render()
{
$data['user'] = Auth::user();
$enrolledByUser = CourseEnrolled::where('user_id', Auth::user()->id)->orderBy('last_view_at', 'desc');
$total_spent = $enrolledByUser->sum('purchase_price');
$total_purchase = $enrolledByUser->count() ?? 0;
$Hour = date('G');
if ($Hour >= 5 && $Hour <= 11) {
$wish_string = trans("student.Good Morning");
} else if ($Hour >= 12 && $Hour <= 18) {
$wish_string = trans("student.Good Afternoon");
} else if ($Hour >= 19 || $Hour <= 4) {
$wish_string = trans("student.Good Evening");
}
$date = Carbon::now(Settings('active_time_zone'))->format("jS F Y \, l");
$mycourse = $enrolledByUser
->whereHas('course', function ($query) {
$query->where('type', '=', 1);
})
->with('course', 'course.lessons', 'course.activeReviews', 'course.completeLessons', 'course.completeLessons')->take(3)->get();
$student_setup = StudentSetup::getData();
$courses = Course::where('type', 1)->where('status', 1)->inRandomOrder()->limit(3)->with('lessons', 'enrollUsers', 'cartUsers', 'user', 'reviews', 'BookmarkUsers', 'courseLevel')
->whereDoesntHave('enrolls', function ($q) {
$q->where('user_id', '=', Auth::id());
})
->get();
$quizzes = Course::where('type', 2)->where('status', 1)->inRandomOrder()->limit(3)->with('quiz', 'quiz.assign', 'enrollUsers', 'cartUsers', 'user', 'reviews', 'BookmarkUsers', 'courseLevel')
->whereDoesntHave('enrolls', function ($q) {
$q->where('user_id', '=', Auth::id());
})->get();
$withForClass = ['activeReviews', 'enrollUsers', 'cartUsers', 'class', 'class.zoomMeetings', 'user', 'reviews', 'BookmarkUsers', 'courseLevel'];
if (isModuleActive('BBB')) {
$withForClass[] = 'class.bbbMeetings';
}
if (isModuleActive('Jisti')) {
$withForClass[] = 'class.jitsiMeetings';
}
$classes = Course::where('type', 3)->where('status', 1)->inRandomOrder()->limit(3)->with($withForClass)
->whereDoesntHave('enrolls', function ($q) {
$q->where('user_id', '=', Auth::id());
})->get();
$myCertificateNumber = CertificateRecord::where('student_id', Auth::id())->count();
return view(theme('components.my-dashboard-page-section'), compact('myCertificateNumber', 'quizzes', 'courses', 'classes', 'data', 'mycourse', 'wish_string', 'date', 'total_purchase', 'student_setup', 'total_spent'));
}
}