namespace AIRuntime.Runtime.Models
{
    /// <summary>
    /// Represents a tool call requested by the LLM.
    /// This is the Harness internal representation.
    /// </summary>
    [System.Serializable]
    public class ToolCall
    {
        /// <summary>
        /// Unique identifier generated by the LLM.
        /// Required when sending the tool response back.
        /// </summary>
        public string Id;

        /// <summary>
        /// Name of the tool to execute.
        /// Example: "hello_world"
        /// </summary>
        public string Name;

        /// <summary>
        /// JSON arguments supplied by the model.
        /// Example:
        /// {
        ///     "path":"README.md"
        /// }
        /// </summary>
        public string Arguments;

        public ToolCall()
        {
        }

        public ToolCall(string id, string name, string arguments)
        {
            Id = id;
            Name = name;
            Arguments = arguments;
        }

        public override string ToString()
        {
            return $"{Name}({Arguments})";
        }
    }
}