buckets/app/Http/Controllers/ProjectionController.php

31 lines
869 B
PHP
Raw Normal View History

2025-12-31 02:34:30 +01:00
<?php
namespace App\Http\Controllers;
use App\Http\Requests\CalculateProjectionRequest;
use App\Http\Resources\ProjectionResource;
use App\Models\Scenario;
use App\Services\Projection\ProjectionGeneratorService;
use Carbon\Carbon;
class ProjectionController extends Controller
{
public function __construct(
private readonly ProjectionGeneratorService $projectionGeneratorService
) {}
public function calculate(CalculateProjectionRequest $request, Scenario $scenario): ProjectionResource
{
$startDate = Carbon::parse($request->input('start_date'));
$endDate = Carbon::parse($request->input('end_date'));
$projections = $this->projectionGeneratorService->generateProjections(
$scenario,
$startDate,
$endDate
);
return new ProjectionResource($projections);
}
}