using AIStudio.Assistants.ERI;
using AIStudio.Provider;
using OperatingSystem = AIStudio.Assistants.ERI.OperatingSystem;
namespace AIStudio.Settings.DataModel;
public sealed class DataERI
{
///
/// Should we automatically save any input made in the ERI assistant?
///
public bool AutoSaveChanges { get; set; } = true;
///
/// Preselect any ERI options?
///
public bool PreselectOptions { get; set; } = true;
///
/// Preselect the server name?
///
public string PreselectedServerName { get; set; } = string.Empty;
///
/// Preselect the server description?
///
public string PreselectedServerDescription { get; set; } = string.Empty;
///
/// Preselect the ERI version?
///
public ERIVersion PreselectedERIVersion { get; set; } = ERIVersion.NONE;
///
/// Preselect the language for implementing the ERI?
///
public ProgrammingLanguages PreselectedProgrammingLanguage { get; set; }
///
/// Do you want to preselect any other language?
///
public string PreselectedOtherProgrammingLanguage { get; set; } = string.Empty;
///
/// Preselect a data source?
///
public DataSources PreselectedDataSource { get; set; }
///
/// Do you want to preselect a product name for the data source?
///
public string PreselectedDataSourceProductName { get; set; } = string.Empty;
///
/// Do you want to preselect any other data source?
///
public string PreselectedOtherDataSource { get; set; } = string.Empty;
///
/// Do you want to preselect a hostname for the data source?
///
public string PreselectedDataSourceHostname { get; set; } = string.Empty;
///
/// Do you want to preselect a port for the data source?
///
public int? PreselectedDataSourcePort { get; set; }
///
/// Did the user type the port number?
///
public bool UserTypedPort { get; set; } = false;
///
/// Preselect any authentication methods?
///
public HashSet PreselectedAuthMethods { get; set; } = [];
///
/// Do you want to preselect any authentication description?
///
public string PreselectedAuthDescription { get; set; } = string.Empty;
///
/// Do you want to preselect an operating system? This is necessary when SSO with Kerberos is used.
///
public OperatingSystem PreselectedOperatingSystem { get; set; } = OperatingSystem.NONE;
///
/// Do you want to preselect which LLM providers are allowed?
///
public AllowedLLMProviders PreselectedAllowedLLMProviders { get; set; } = AllowedLLMProviders.NONE;
///
/// Do you want to predefine any embedding information?
///
public List PreselectedEmbeddingInfos { get; set; } = new();
///
/// Do you want to predefine any retrieval information?
///
public List PreselectedRetrievalInfos { get; set; } = new();
///
/// Do you want to preselect any additional libraries?
///
public string PreselectedAdditionalLibraries { get; set; } = string.Empty;
///
/// The minimum confidence level required for a provider to be considered.
///
public ConfidenceLevel MinimumProviderConfidence { get; set; } = ConfidenceLevel.NONE;
///
/// Which coding provider should be preselected?
///
public string PreselectedProvider { get; set; } = string.Empty;
///
/// Preselect a profile?
///
public string PreselectedProfile { get; set; } = string.Empty;
}