<?php
namespace App\View\Components;
use Illuminate\Support\Facades\Auth;
use Illuminate\View\Component;
use Modules\Blog\Entities\Blog;
use Modules\CourseSetting\Entities\Course;
use Modules\FrontendManage\Entities\Slider;
use Modules\Org\Entities\OrgRecentActivity;
class WeTechDashboardPageSection extends Component
{
public function render()
{
$sliders = Slider::where('status', 1)->get();
$query = Blog::where('status', 1);
if (isModuleActive('Org')) {
$query->where(function ($q) {
$q->where('audience', 1)
->orWhere(function ($q) {
$q->where('audience', 2);
if (Auth::check()) {
if (Auth::user()->role_id != 1) {
$q->whereHas('branches', function ($q) {
$q->whereIn('branch_id', getAllChildCodeIds(Auth::user()->branch, [Auth::user()->branch->id]));
});
}
} else {
$q->whereHas('branches', function ($q) {
$q->where('branch_id', 0);
});
}
});
});
$query->where(function ($q) {
$q->where('position_audience', 1)
->orWhere(function ($q) {
$q->where('position_audience', 2);
if (Auth::check()) {
if (Auth::user()->role_id != 1) {
$q->whereHas('positions', function ($q) {
$q->whereIn('position_id', getAllChildCodeIds(Auth::user()->position, [Auth::user()->position->id]));
});
}
} else {
$q->whereHas('positions', function ($q) {
$q->where('position_id', 0);
});
}
});
});
}
$blogs = $query->limit(3)->latest()->get();
$activities = OrgRecentActivity::with('user', 'course', 'user.position')->whereHas('user')->latest()->get();
$open_courses = Course::where('required_type', 0)
->orderBy('updated_at', 'desc')
->where('status', 1)
->where('type', 1)
->get();
return view(theme('components.we-tech-dashboard-page-section'), compact('sliders', 'blogs', 'activities', 'open_courses'));
}
}