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); }