ChatMessageRepositoryInterface.php

Code Hygiene Score: 100

Keine Issues gefunden.

Dependencies 1

Klassen 1

Funktionen 6

Verwendet von 15

Versionen 4

Code

<?php

declare(strict_types=1);

namespace Domain\Repository;

// @responsibility: Vertrag für Chat-Nachrichten-Persistenz

use Domain\Entity\ChatMessage;

interface ChatMessageRepositoryInterface
{
    /**
     * Find messages by session ID as entities.
     *
     * @return array<int, ChatMessage>
     */
    public function findBySessionId(int $sessionId): array;

    /**
     * Save a message entity.
     */
    public function saveEntity(ChatMessage $message): int;

    /**
     * Save a message (legacy - use saveEntity() instead).
     *
     * @param array<string>|null $sources
     * @deprecated Use saveEntity() with ChatMessage entity instead
     * @see self::saveEntity()
     */
    public function save(
        int $sessionId,
        string $role,
        string $content,
        string $model,
        ?int $tokensInput = null,
        ?int $tokensOutput = null,
        ?array $sources = null,
        ?float $startMicrotime = null,
        ?float $endMicrotime = null,
        ?int $authorProfileId = null,
        ?int $systemPromptId = null,
        ?string $collectionsJson = null,
        ?int $contextLimit = null,
        ?int $llmRequestId = null
    ): int;

    /**
     * Delete message by ID.
     */
    public function delete(int $id): void;

    /**
     * Delete all messages for a session.
     */
    public function deleteBySessionId(int $sessionId): void;

    /**
     * Get message statistics for a session.
     *
     * @return array{message_count: int, total_input_tokens: int, total_output_tokens: int, total_duration: float}
     */
    public function getSessionStats(int $sessionId): array;
}
← Übersicht Graph