ChatSessionRepositoryInterface.php

Code Hygiene Score: 96

Keine Issues gefunden.

Dependencies 1

Klassen 1

Funktionen 12

Verwendet von 21

Versionen 5

Code

<?php

declare(strict_types=1);

namespace Domain\Repository;

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

use Domain\Entity\ChatSession;

interface ChatSessionRepositoryInterface
{
    /**
     * Find session by UUID.
     */
    public function findByUuid(string $uuid): ?ChatSession;

    /**
     * Get all sessions with statistics.
     *
     * @return array<int, ChatSession>
     */
    public function findAll(int $limit = 50): array;

    /**
     * Get all sessions as arrays (for list views with aggregated data).
     *
     * @return array<int, array<string, mixed>>
     */
    public function findAllWithStats(int $limit = 50): array;

    /**
     * Save a session (create or update).
     */
    public function save(ChatSession $session): int;

    /**
     * Create a new session (legacy - use save() instead).
     *
     * @deprecated Use save() with ChatSession entity instead
     * @see self::save()
     */
    public function create(string $uuid, string $model, string $collections, int $contextLimit): int;

    /**
     * Update session title.
     */
    public function updateTitle(int $sessionId, string $title): void;

    /**
     * Update session settings.
     *
     * @param array<string> $collections
     */
    public function updateSettings(
        int $sessionId,
        string $model,
        array $collections,
        int $contextLimit,
        ?int $authorProfileId,
        float $temperature,
        int $maxTokens
    ): void;

    /**
     * Update system prompt.
     */
    public function updateSystemPrompt(int $sessionId, ?string $systemPrompt): void;

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

    /**
     * Delete all sessions.
     */
    public function deleteAll(): int;

    /**
     * Touch session (update last_activity timestamp).
     */
    public function touch(int $sessionId): void;

    /**
     * Generate UUID v4.
     */
    public function generateUuid(): string;
}
← Übersicht Graph