prepare('SELECT * FROM messages WHERE session_id = :session_id ORDER BY created_at ASC'); $stmt->execute(['session_id' => $sessionId]); return $stmt->fetchAll(); } public static function create(array $data): array { $db = Database::getInstance(); $stmt = $db->prepare('INSERT INTO messages (session_id, role, content, file_info, thinking_content) VALUES (:session_id, :role, :content, :file_info, :thinking_content)'); $stmt->execute([ 'session_id' => $data['session_id'], 'role' => $data['role'], 'content' => $data['content'], 'file_info' => isset($data['file_info']) ? json_encode($data['file_info']) : null, 'thinking_content' => $data['thinking_content'] ?? null, ]); $stmt = $db->prepare('SELECT * FROM messages WHERE id = :id'); $stmt->execute(['id' => (int) $db->lastInsertId()]); return $stmt->fetch(); } }