ChatSessionDTO.php
- Pfad:
src/UseCases/Chat/ChatSessionDTO.php - Namespace: UseCases\Chat
- Zeilen: 129 | Größe: 2,646 Bytes
- Geändert: 2025-12-25 17:02:52 | Gescannt: 2025-12-31 10:22:15
Code Hygiene Score: 86
- Dependencies: 100 (25%)
- LOC: 100 (20%)
- Methods: 30 (20%)
- Secrets: 100 (15%)
- Classes: 100 (10%)
- Magic Numbers: 100 (10%)
Keine Issues gefunden.
Dependencies 3
- constructor Domain\Entity\ChatSession
- use Domain\Entity\ChatMessage
- use Domain\Entity\ChatSession
Klassen 1
-
ChatSessionDTOclass Zeile 12
Funktionen 17
-
__construct()public Zeile 22 -
getSession()public Zeile 30 -
getId()public Zeile 35 -
getUuid()public Zeile 40 -
getTitle()public Zeile 45 -
getModel()public Zeile 50 -
getCollections()public Zeile 58 -
getContextLimit()public Zeile 63 -
getAuthorProfileId()public Zeile 68 -
getSystemPromptId()public Zeile 73 -
getTemperature()public Zeile 78 -
getMaxTokens()public Zeile 83 -
getMessages()public Zeile 91 -
getMessagesAsArrays()public Zeile 101 -
getMessageCount()public Zeile 106 -
toArray()public Zeile 116 -
exists()public Zeile 124
Versionen 3
-
v3
2025-12-25 17:02 | claude-code-hook | modified
Claude Code Pre-Hook Backup vor Edit-Operation -
v2
2025-12-25 09:38 | claude-code-hook | modified
Claude Code Pre-Hook Backup vor Edit-Operation -
v1
2025-12-23 07:57 | claude-code-hook | modified
Claude Code Pre-Hook Backup vor Edit-Operation
Code
<?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 \Domain\Factory\ChatSessionFactory::toArray($this->session);
}
/**
* Check if session exists
*/
public function exists(): bool
{
return $this->getId() > 0;
}
}