// <auto-generated/>

#nullable disable

using System;
using System.Collections.Generic;
using System.Linq;
using OpenAI;

namespace OpenAI.Responses
{
    internal partial class InternalFileSearchTool : ResponseTool
    {
        public InternalFileSearchTool(IEnumerable<string> vectorStoreIds) : base(InternalToolType.FileSearch)
        {
            Argument.AssertNotNull(vectorStoreIds, nameof(vectorStoreIds));

            VectorStoreIds = vectorStoreIds.ToList();
        }

        internal InternalFileSearchTool(InternalToolType kind, IDictionary<string, BinaryData> additionalBinaryDataProperties, IList<string> vectorStoreIds, int? maxNumResults, FileSearchToolRankingOptions rankingOptions, BinaryData filters) : base(kind, additionalBinaryDataProperties)
        {
            // Plugin customization: ensure initialization of collections
            VectorStoreIds = vectorStoreIds ?? new ChangeTrackingList<string>();
            MaxNumResults = maxNumResults;
            RankingOptions = rankingOptions;
            Filters = filters;
        }

        public IList<string> VectorStoreIds { get; }

        public int? MaxNumResults { get; set; }

        public FileSearchToolRankingOptions RankingOptions { get; set; }

        public BinaryData Filters { get; set; }
    }
}
