Files
2026-05-30 01:11:35 -04:00

6 lines
1.2 KiB
PHP

<?php
declare(strict_types=1);
namespace App\Http\Controllers\Students;
use App\Domain\SchoolCore\Context\SchoolContext; use App\Domain\SchoolCore\Students\Contracts\GuardianServiceContract; use App\Http\Requests\Students\CreateGuardianRequest; use App\Http\Requests\Students\LinkGuardianRequest; use Illuminate\Http\Request; use Illuminate\Routing\Controller;
final class GuardianController extends Controller { public function __construct(private readonly GuardianServiceContract $guardians){} public function store(CreateGuardianRequest $request): array { $context=$request->attributes->get(SchoolContext::class); return ['data'=>$this->guardians->createGuardian($context,$request->toDTO())]; } public function link(LinkGuardianRequest $request): array { $context=$request->attributes->get(SchoolContext::class); return ['data'=>$this->guardians->linkGuardianToStudent($context,$request->toDTO())]; } public function unlink(Request $request,int $student,int $guardian): array { $context=$request->attributes->get(SchoolContext::class); return ['data'=>$this->guardians->unlinkGuardianFromStudent($context,$student,$guardian,(string)$request->input('reason','unlink guardian'))]; } }