Files
2026-05-29 04:33:03 -04:00

6 lines
1.1 KiB
PHP

<?php
declare(strict_types=1);
namespace App\Http\Controllers\Students;
use App\Domain\SchoolCore\Context\SchoolContext; use App\Domain\SchoolCore\Students\Contracts\PromotionServiceContract; use App\Http\Requests\Students\BulkPromotionRequest; use App\Http\Requests\Students\PromotionRequest; use Illuminate\Http\Request; use Illuminate\Routing\Controller;
final class PromotionController extends Controller { public function __construct(private readonly PromotionServiceContract $promotions){} public function evaluate(Request $request,int $student): array { $context=$request->attributes->get(SchoolContext::class); return ['data'=>$this->promotions->evaluatePromotion($context,$student)]; } public function promote(PromotionRequest $request): array { $context=$request->attributes->get(SchoolContext::class); return ['data'=>$this->promotions->promoteStudent($context,$request->toDTO())]; } public function bulk(BulkPromotionRequest $request): array { $context=$request->attributes->get(SchoolContext::class); return ['data'=>$this->promotions->bulkPromote($context,$request->toDTO())]; } }