Files
2026-03-20 21:47:02 +05:00

43 lines
1.3 KiB
PHP
Executable File

<?php
namespace App\Containers\InstituteStructure\UI\WEB\Controllers;
use App\Containers\InstituteStructure\Actions\FindDivisionBySlugAction;
use App\Containers\InstituteStructure\Actions\ListDivisionsAction;
use App\Containers\InstituteStructure\UI\WEB\Transformers\DivisionResource;
use App\Ship\Contracts\SeoServiceInterface;
use App\Ship\Controllers\Controller;
use Inertia\Inertia;
class ClientDivisionController extends Controller
{
public function __construct(
readonly SeoServiceInterface $seoPageProvider,
private readonly ListDivisionsAction $listDivisionsAction,
private readonly FindDivisionBySlugAction $findDivisionBySlugAction
) {
}
public function index(): \Inertia\Response
{
$divisions = $this->listDivisionsAction->run();
$seo = $this->seoPageProvider->getSeoForCurrentPage();
return Inertia::render('Client/Divisions/Index', compact('divisions', 'seo'));
}
public function show(string $slug): \Inertia\Response
{
$divisions = $this->listDivisionsAction->run();
$divisionData = $this->findDivisionBySlugAction->run($slug);
$seo = $this->seoPageProvider->getSeoForModel($divisionData);
$division = new DivisionResource($divisionData);
return Inertia::render('Client/Divisions/Show', compact('divisions', 'division', 'seo'));
}
}