{
"event": "PreToolUse",
"tool_name": "Write",
"tool_input": {
"file_path": "\/var\/www\/dev.campus.systemische-tools.de\/src\/Domain\/Repository\/ChatMessageRepositoryInterface.php",
"content": "<?php\n\nnamespace Domain\\Repository;\n\n\/**\n * Interface for Chat Message Repository operations.\n *\/\ninterface ChatMessageRepositoryInterface\n{\n \/**\n * Find messages by session ID.\n *\n * @return array<int, array<string, mixed>>\n *\/\n public function findBySessionId(int $sessionId): array;\n\n \/**\n * Save a message.\n *\n * @param array<string>|null $sources\n *\/\n public function save(\n int $sessionId,\n string $role,\n string $content,\n string $model,\n ?int $tokensInput = null,\n ?int $tokensOutput = null,\n ?array $sources = null,\n ?float $startMicrotime = null,\n ?float $endMicrotime = null,\n ?int $authorProfileId = null,\n ?int $systemPromptId = null,\n ?string $collectionsJson = null,\n ?int $contextLimit = null\n ): int;\n\n \/**\n * Delete message by ID.\n *\/\n public function delete(int $id): void;\n\n \/**\n * Delete all messages for a session.\n *\/\n public function deleteBySessionId(int $sessionId): void;\n\n \/**\n * Get message statistics for a session.\n *\n * @return array{message_count: int, total_input_tokens: int, total_output_tokens: int, total_duration: float}\n *\/\n public function getSessionStats(int $sessionId): array;\n}\n"
}
}
{
"tool_response": {
"type": "create",
"filePath": "\/var\/www\/dev.campus.systemische-tools.de\/src\/Domain\/Repository\/ChatMessageRepositoryInterface.php",
"content": "<?php\n\nnamespace Domain\\Repository;\n\n\/**\n * Interface for Chat Message Repository operations.\n *\/\ninterface ChatMessageRepositoryInterface\n{\n \/**\n * Find messages by session ID.\n *\n * @return array<int, array<string, mixed>>\n *\/\n public function findBySessionId(int $sessionId): array;\n\n \/**\n * Save a message.\n *\n * @param array<string>|null $sources\n *\/\n public function save(\n int $sessionId,\n string $role,\n string $content,\n string $model,\n ?int $tokensInput = null,\n ?int $tokensOutput = null,\n ?array $sources = null,\n ?float $startMicrotime = null,\n ?float $endMicrotime = null,\n ?int $authorProfileId = null,\n ?int $systemPromptId = null,\n ?string $collectionsJson = null,\n ?int $contextLimit = null\n ): int;\n\n \/**\n * Delete message by ID.\n *\/\n public function delete(int $id): void;\n\n \/**\n * Delete all messages for a session.\n *\/\n public function deleteBySessionId(int $sessionId): void;\n\n \/**\n * Get message statistics for a session.\n *\n * @return array{message_count: int, total_input_tokens: int, total_output_tokens: int, total_duration: float}\n *\/\n public function getSessionStats(int $sessionId): array;\n}\n",
"structuredPatch": [],
"originalFile": null
}
}