PromptDTO.php

Code Hygiene Score: 100

Keine Issues gefunden.

Klassen 1

Funktionen 3

Versionen 3

Code

<?php

declare(strict_types=1);

namespace UseCases\Prompts;

// @responsibility: Datenübertragungsobjekt für Prompts

final class PromptDTO
{
    public function __construct(
        public readonly ?int $id,
        public readonly string $name,
        public readonly string $version,
        public readonly string $content,
        public readonly bool $isActive,
        public readonly int $criticCount = 0,
        public readonly ?string $createdAt = null,
        public readonly ?string $updatedAt = null,
    ) {
    }

    public static function fromArray(array $data): self
    {
        return new self(
            id: isset($data['id']) ? (int) $data['id'] : null,
            name: $data['name'] ?? '',
            version: $data['version'] ?? '1.0',
            content: $data['content'] ?? '',
            isActive: (bool) ($data['is_active'] ?? false),
            criticCount: (int) ($data['critic_count'] ?? 0),
            createdAt: $data['created_at'] ?? null,
            updatedAt: $data['updated_at'] ?? null,
        );
    }

    public function toArray(): array
    {
        return [
            'id' => $this->id,
            'name' => $this->name,
            'version' => $this->version,
            'content' => $this->content,
            'is_active' => $this->isActive,
            'critic_count' => $this->criticCount,
            'created_at' => $this->createdAt,
            'updated_at' => $this->updatedAt,
        ];
    }
}
← Übersicht Graph