Backup #2142

ID2142
Dateipfad/var/www/dev.campus.systemische-tools.de/src/UseCases/Config/ConfigDTO.php
Version3
Typ modified
Größe2.1 KB
Hash702f00b64d4505bf15ec297d2855ea1bce303e76a7dfe9c75ad5c54e97885992
Datum2025-12-30 20:37:55
Geändert vonclaude-code-hook
GrundClaude Code Pre-Hook Backup vor Edit-Operation
Datei existiert Ja

Dateiinhalt

<?php

declare(strict_types=1);

namespace UseCases\Config;

// @responsibility: Datenübertragungsobjekt für Content-Konfigurationen

final class ConfigDTO
{
    public function __construct(
        public readonly ?int $id,
        public readonly string $type,
        public readonly string $name,
        public readonly string $slug,
        public readonly ?string $description,
        public readonly string $content,
        public readonly string $version,
        public readonly string $status,
        public readonly ?int $parentId,
        public readonly ?string $parentName = null,
        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,
            type: $data['type'] ?? '',
            name: $data['name'] ?? '',
            slug: $data['slug'] ?? '',
            description: $data['description'] ?? null,
            content: $data['content'] ?? '{}',
            version: $data['version'] ?? '1.0',
            status: $data['status'] ?? 'draft',
            parentId: isset($data['parent_id']) ? (int) $data['parent_id'] : null,
            parentName: $data['parent_name'] ?? null,
            createdAt: $data['created_at'] ?? null,
            updatedAt: $data['updated_at'] ?? null,
        );
    }

    public function getContentDecoded(): ?array
    {
        $decoded = json_decode($this->content, true);

        return is_array($decoded) ? $decoded : null;
    }

    public function toArray(): array
    {
        return [
            'id' => $this->id,
            'type' => $this->type,
            'name' => $this->name,
            'slug' => $this->slug,
            'description' => $this->description,
            'content' => $this->content,
            'version' => $this->version,
            'status' => $this->status,
            'parent_id' => $this->parentId,
            'parent_name' => $this->parentName,
            'created_at' => $this->createdAt,
            'updated_at' => $this->updatedAt,
        ];
    }
}

Vollständig herunterladen

Aktionen

Herunterladen

Andere Versionen dieser Datei

ID Version Typ Größe Datum
2143 4 modified 2.4 KB 2025-12-30 20:39
2142 3 modified 2.1 KB 2025-12-30 20:37
726 2 modified 2.0 KB 2025-12-23 07:56
463 1 modified 1.4 KB 2025-12-22 10:30

← Zurück zur Übersicht