Subversion-Projekte lars-tiefland.laravel_shop

Revision

Revision 148 | Details | Vergleich mit vorheriger | Letzte Änderung | Log anzeigen | RSS feed

Revision Autor Zeilennr. Zeile
148 lars 1
<?php
2
 
3
namespace Spatie\FlareClient\Solutions;
4
 
5
use Spatie\Ignition\Contracts\RunnableSolution;
6
use Spatie\Ignition\Contracts\Solution as SolutionContract;
7
 
8
class ReportSolution
9
{
10
    protected SolutionContract $solution;
11
 
12
    public function __construct(SolutionContract $solution)
13
    {
14
        $this->solution = $solution;
15
    }
16
 
17
    public static function fromSolution(SolutionContract $solution): self
18
    {
19
        return new self($solution);
20
    }
21
 
22
    /**
23
     * @return array<string, mixed>
24
     */
25
    public function toArray(): array
26
    {
27
        $isRunnable = ($this->solution instanceof RunnableSolution);
28
 
29
        return [
30
            'class' => get_class($this->solution),
31
            'title' => $this->solution->getSolutionTitle(),
32
            'description' => $this->solution->getSolutionDescription(),
33
            'links' => $this->solution->getDocumentationLinks(),
34
            /** @phpstan-ignore-next-line  */
35
            'action_description' => $isRunnable ? $this->solution->getSolutionActionDescription() : null,
36
            'is_runnable' => $isRunnable,
1294 lars 37
            'ai_generated' => $this->solution->aiGenerated ?? false,
148 lars 38
        ];
39
    }
40
}