This commit is contained in:
f4ilji
2024-10-14 14:56:10 +05:00
parent 77b3e3b4b1
commit dd3a0c6ecd
258 changed files with 6548 additions and 1777 deletions
@@ -2,6 +2,8 @@
namespace App\Http\Controllers;
use App\Enums\FormEducation;
use App\Http\Resources\AdditionalEducationCategoryPreviewResource;
use App\Http\Resources\AdditionalEducationCategoryResource;
use App\Http\Resources\AdditionalEducationResource;
use App\Http\Resources\DirectionAdditionalEducationResource;
@@ -15,30 +17,87 @@ class ClientAdditionalEducationController extends Controller
{
public function index(Request $request)
{
$directionAdditionalEducations = DirectionAdditionalEducationResource::collection(
DirectionAdditionalEducation::query()
->where('is_active', true)
->whereHas('additionalEducationCategories', function ($q) {
$q->whereHas('additionalEducations');
})
->get());
})->get());
$additionalEducations = AdditionalEducationCategoryResource::collection(AdditionalEducationCategory::query()
->WithActivePrograms()
->where('is_active', '=', true)
->when($request->input('dir_id'), function ($q, $direction_id) {
$q->where('dir_addit_educat_id', $direction_id);
->when($request->input('direction'), function ($q, $direction) {
$q->whereHas('direction', function ($query) use ($direction) {
$query->where('slug', $direction);
});
})
->when(request()->input('form'), function ($query, $form) {
$query->whereHas('additionalEducations', function ($q) use ($form) {
$q->where('form_education', FormEducation::fromName($form));
});
$query->with(['additionalEducations' => function ($q) use ($form) {
$q->where('form_education', FormEducation::fromName($form));
}]);
})
->when(request()->input('category'), function ($query) {
$slugs = request()->input('category');
if (is_array($slugs)) {
$query->whereIn('slug', $slugs);
}
})
->has('additionalEducations')
->with('additionalEducations')
->get());
$categories = AdditionalEducationCategoryPreviewResource::collection(
AdditionalEducationCategory::query()
->where('is_active', true)
->has('additionalEducations')
->get()
);
$categoriesContent = [];
if (request()->input('category')) {
foreach (request()->input('category') as $item) {
$categoriesContent[$item] = new AdditionalEducationCategoryResource(AdditionalEducationCategory::where('slug', $item)->first());
}
}
$forms_education = [];
foreach (FormEducation::cases() as $case) {
$forms_education[$case->name] = $case->getLabel();
}
$filters = [
'dir_id' => request()->input('dir_id')
'direction_filter' => [
'type' => 'direction',
'value' => request()->input('direction'),
'param' => 'direction'
],
'form_education_filter' => [
'type' => 'form',
'value' => request()->input('form'),
'param' => 'form'
],
'category_filter' => [
'type' => 'category',
'value' => request()->input('category'),
'param' => 'category',
'content' => $categoriesContent,
],
];
return Inertia::render('Client/Additional-educations/Index', compact('directionAdditionalEducations', 'additionalEducations', 'filters'));
return Inertia::render('Client/Additional-educations/Index',
compact(
'directionAdditionalEducations',
'additionalEducations',
'filters',
'forms_education',
'categories'
));
}
public function show(string $id)
public function show(string $slug)
{
$additionalEducation = new AdditionalEducationResource(AdditionalEducation::query()->with('category.direction')->find($id));
$additionalEducation = new AdditionalEducationResource(AdditionalEducation::query()->with('category.direction')->where('slug', $slug)->first());
return Inertia::render('Client/Additional-educations/Show', compact('additionalEducation'));
}
}