using System.Linq.Expressions;
using AIStudio.Assistants.SlideBuilder;
using AIStudio.Provider;
namespace AIStudio.Settings.DataModel;
///
/// Stores managed default settings for the Visual Briefing Assistant.
///
/// The managed-configuration selector.
public sealed class DataVisualBriefing(Expression>? configSelection = null)
{
///
/// Initializes an unmanaged Visual Briefing settings instance.
///
public DataVisualBriefing() : this(null)
{
}
///
/// Gets or sets the preselected profile identifier.
///
public string PreselectedProfile { get; set; } = ManagedConfiguration.Register(configSelection, value => value.PreselectedProfile, string.Empty);
///
/// Gets or sets the preselected provider identifier.
///
public string PreselectedProvider { get; set; } = ManagedConfiguration.Register(configSelection, value => value.PreselectedProvider, string.Empty);
///
/// Gets or sets the default target language.
///
public CommonLanguages PreselectedTargetLanguage { get; set; } = ManagedConfiguration.Register(configSelection, value => value.PreselectedTargetLanguage, CommonLanguages.EN_US);
///
/// Gets or sets the default free-form target language.
///
public string PreselectedOtherLanguage { get; set; } = ManagedConfiguration.Register(configSelection, value => value.PreselectedOtherLanguage, string.Empty);
///
/// Gets or sets the default audience profile.
///
public AudienceProfile PreselectedAudienceProfile { get; set; } = ManagedConfiguration.Register(configSelection, value => value.PreselectedAudienceProfile, AudienceProfile.UNSPECIFIED);
///
/// Gets or sets the default audience age group.
///
public AudienceAgeGroup PreselectedAudienceAgeGroup { get; set; } = ManagedConfiguration.Register(configSelection, value => value.PreselectedAudienceAgeGroup, AudienceAgeGroup.UNSPECIFIED);
///
/// Gets or sets the default audience organizational level.
///
public AudienceOrganizationalLevel PreselectedAudienceOrganizationalLevel { get; set; } = ManagedConfiguration.Register(configSelection, value => value.PreselectedAudienceOrganizationalLevel, AudienceOrganizationalLevel.UNSPECIFIED);
///
/// Gets or sets the default audience expertise.
///
public AudienceExpertise PreselectedAudienceExpertise { get; set; } = ManagedConfiguration.Register(configSelection, value => value.PreselectedAudienceExpertise, AudienceExpertise.UNSPECIFIED);
///
/// Gets or sets whether generated briefings show source references by default.
///
public bool ShowSourceReferences { get; set; } = ManagedConfiguration.Register(configSelection, value => value.ShowSourceReferences, true);
///
/// Gets or sets whether visual assets are optimized by default.
///
public bool OptimizeImages { get; set; } = ManagedConfiguration.Register(configSelection, value => value.OptimizeImages, true);
///
/// Gets or sets the minimum confidence accepted for the selected provider.
///
public ConfidenceLevel MinimumProviderConfidence { get; set; } = ManagedConfiguration.Register(configSelection, value => value.MinimumProviderConfidence, ConfidenceLevel.NONE);
}