update project

This commit is contained in:
root
2026-05-30 01:11:35 -04:00
parent 3a0628ecc7
commit 2225f6bc72
9743 changed files with 1122482 additions and 59 deletions
@@ -0,0 +1,28 @@
<?php declare(strict_types=1);
namespace App\Http\Controllers\Reporting;
use App\Domain\SchoolCore\Context\SchoolContext;
use App\Domain\SchoolCore\Reporting\Contracts\ReportRegistryContract;
use App\Domain\SchoolCore\Reporting\Contracts\ReportRunnerContract;
use App\Http\Requests\Reporting\RunReportRequest;
use Illuminate\Routing\Controller;
final class ReportController extends Controller
{
public function __construct(private readonly ReportRunnerContract $runner, private readonly ReportRegistryContract $registry) {}
public function index(RunReportRequest $request): array
{
/** @var SchoolContext $context */
$context = $request->attributes->get(SchoolContext::class);
return ['reports' => array_map(fn ($report) => ['key' => $report->key(), 'name' => $report->name()], $this->registry->availableReports($context))];
}
public function run(RunReportRequest $request): array
{
/** @var SchoolContext $context */
$context = $request->attributes->get(SchoolContext::class);
$result = $this->runner->run($context, $request->toDTO());
return ['data' => $result];
}
}