Backup #1476

ID1476
Dateipfad/var/www/dev.campus.systemische-tools.de/src/UseCases/Chat/ChatSessionDTO.php
Version3
Typ modified
Größe2.6 KB
Hashc2cfb17a6d31de2ff78dfb3f90f5a892f5e4a20c7b4546fd70b3aba9cf578e3f
Datum2025-12-25 17:02:52
Geändert vonclaude-code-hook
GrundClaude Code Pre-Hook Backup vor Edit-Operation
Datei existiert Ja

Dateiinhalt

<?php

declare(strict_types=1);

namespace UseCases\Chat;

// @responsibility: Datenübertragungsobjekt für Chat-Sessions

use Domain\Entity\ChatMessage;
use Domain\Entity\ChatSession;

final class ChatSessionDTO
{
    private ChatSession $session;
    /** @var array<int, ChatMessage> */
    private array $messages;

    /**
     * @param ChatSession $session Session entity
     * @param array<int, ChatMessage> $messages Messages for this session
     */
    public function __construct(
        ChatSession $session,
        array $messages = [],
    ) {
        $this->session = $session;
        $this->messages = $messages;
    }

    public function getSession(): ChatSession
    {
        return $this->session;
    }

    public function getId(): int
    {
        return $this->session->getId() ?? 0;
    }

    public function getUuid(): string
    {
        return $this->session->getUuid();
    }

    public function getTitle(): ?string
    {
        return $this->session->getTitle();
    }

    public function getModel(): string
    {
        return $this->session->getModel();
    }

    /**
     * @return array<string>
     */
    public function getCollections(): array
    {
        return $this->session->getCollections();
    }

    public function getContextLimit(): int
    {
        return $this->session->getContextLimit();
    }

    public function getAuthorProfileId(): int
    {
        return $this->session->getAuthorProfileId() ?? 0;
    }

    public function getSystemPromptId(): int
    {
        return $this->session->getSystemPromptId() ?? 1;
    }

    public function getTemperature(): float
    {
        return $this->session->getTemperature();
    }

    public function getMaxTokens(): int
    {
        return $this->session->getMaxTokens();
    }

    /**
     * @return array<int, ChatMessage>
     */
    public function getMessages(): array
    {
        return $this->messages;
    }

    /**
     * Get messages as arrays for views.
     *
     * @return array<int, array<string, mixed>>
     */
    public function getMessagesAsArrays(): array
    {
        return array_map(fn (ChatMessage $m) => $m->toArray(), $this->messages);
    }

    public function getMessageCount(): int
    {
        return count($this->messages);
    }

    /**
     * Get session as array for views.
     *
     * @return array<string, mixed>
     */
    public function toArray(): array
    {
        return $this->session->toArray();
    }

    /**
     * Check if session exists
     */
    public function exists(): bool
    {
        return $this->getId() > 0;
    }
}

Vollständig herunterladen

Aktionen

Herunterladen

Andere Versionen dieser Datei

ID Version Typ Größe Datum
1476 3 modified 2.6 KB 2025-12-25 17:02
1124 2 modified 2.4 KB 2025-12-25 09:38
733 1 modified 2.4 KB 2025-12-23 07:57

← Zurück zur Übersicht