ContentGenerationResult.php

Code Hygiene Score: 100

Keine Issues gefunden.

Klassen 1

Funktionen 10

Versionen 1

Code

<?php

declare(strict_types=1);

namespace UseCases\Content;

// @responsibility: Ergebnisobjekt für Content-Generierung

final class ContentGenerationResult
{
    public function __construct(
        private string $content = '',
        private array $sources = [],
        private ?int $versionNumber = null,
        private ?string $error = null,
    ) {
    }

    public function getContent(): string
    {
        return $this->content;
    }

    public function getSources(): array
    {
        return $this->sources;
    }

    public function getVersionNumber(): ?int
    {
        return $this->versionNumber;
    }

    public function getError(): ?string
    {
        return $this->error;
    }

    public function hasError(): bool
    {
        return $this->error !== null;
    }

    public function isSuccess(): bool
    {
        return $this->error === null;
    }

    /**
     * Create from Python script result
     */
    public static function fromPythonResult(array $result): self
    {
        if (isset($result['error'])) {
            return new self(error: $result['error']);
        }

        return new self(
            content: $result['content'] ?? '',
            sources: $result['sources'] ?? [],
            versionNumber: $result['version_number'] ?? null,
        );
    }

    /**
     * Create error result
     */
    public static function error(string $message): self
    {
        return new self(error: $message);
    }

    /**
     * Convert to array for view rendering
     */
    public function toArray(): array
    {
        return [
            'content' => $this->content,
            'sources' => $this->sources,
            'version_number' => $this->versionNumber,
            'error' => $this->error,
        ];
    }
}
← Übersicht Graph