Backup #1469

ID1469
Dateipfad/var/www/dev.campus.systemische-tools.de/src/UseCases/Chat/LoadChatSessionUseCase.php
Version7
Typ modified
Größe1.6 KB
Hash5c0196be3e6a02fd9d310f5e42410544e003d59afdfa591405f3de6df55dd17d
Datum2025-12-25 17:02:22
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: Lädt Chat-Session mit allen Nachrichten

use Domain\Repository\ChatMessageRepositoryInterface;
use Domain\Repository\ChatSessionRepositoryInterface;

class LoadChatSessionUseCase
{
    public function __construct(
        private ChatSessionRepositoryInterface $sessionRepo,
        private ChatMessageRepositoryInterface $messageRepo
    ) {
    }

    /**
     * Load session by UUID with all messages
     */
    public function execute(string $uuid): ?ChatSessionDTO
    {
        $session = $this->sessionRepo->findByUuid($uuid);

        if ($session === null) {
            return null;
        }

        $messages = $this->messageRepo->findBySessionId($session->getId() ?? 0);

        return new ChatSessionDTO($session, $messages);
    }

    /**
     * Create a new session and return it
     *
     * @param array<string> $collections
     */
    public function createNew(
        string $model = 'claude-opus-4-5-20251101',
        array $collections = ['documents'],
        int $contextLimit = 5
    ): ChatSessionDTO {
        $uuid = $this->sessionRepo->generateUuid();
        $metadata = SessionMetadata::create($model, $collections, $contextLimit);
        $session = ChatSessionFactory::createNew(SessionUuid::fromString($uuid), $metadata);
        $sessionId = $this->sessionRepo->save($session);

        // Reload to get full data including timestamps
        $savedSession = $this->sessionRepo->findByUuid($uuid);

        return new ChatSessionDTO($savedSession ?? $session->withId($sessionId), []);
    }
}

Vollständig herunterladen

Aktionen

Herunterladen

Andere Versionen dieser Datei

ID Version Typ Größe Datum
1469 7 modified 1.6 KB 2025-12-25 17:02
1461 6 modified 1.7 KB 2025-12-25 17:01
1457 5 modified 1.6 KB 2025-12-25 17:01
1454 4 modified 1.5 KB 2025-12-25 17:00
1125 3 modified 1.4 KB 2025-12-25 09:40
833 2 modified 1.6 KB 2025-12-23 08:16
715 1 modified 1.7 KB 2025-12-23 07:55

← Zurück zur Übersicht