using AIStudio.Assistants.SlideBuilder; using AIStudio.Settings; using System.Text.Json.Serialization; namespace AIStudio.Assistants.VisualBriefing; /// /// Defines VisualBriefingLocalSettings for the visual briefing feature. /// public sealed class VisualBriefingLocalSettings { /// /// Defines ProviderId for the visual briefing feature. /// public string ProviderId { get; set; } = string.Empty; /// /// Defines ModelId for the visual briefing feature. /// public string ModelId { get; set; } = string.Empty; /// /// Defines ProfileIds for the visual briefing feature. /// public HashSet ProfileIds { get; set; } = []; [JsonPropertyName("ProfileId")] [JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)] public string? LegacyProfileId { get => null; set { if (this.ProfileIds.Count == 0 && !string.IsNullOrWhiteSpace(value) && !value.Equals(Profile.NO_PROFILE.Id, StringComparison.OrdinalIgnoreCase)) this.ProfileIds.Add(value); } } /// /// Defines TargetLanguage for the visual briefing feature. /// public CommonLanguages TargetLanguage { get; set; } = CommonLanguages.EN_US; /// /// Defines CustomTargetLanguage for the visual briefing feature. /// public string CustomTargetLanguage { get; set; } = string.Empty; /// /// Defines AudienceProfile for the visual briefing feature. /// public AudienceProfile AudienceProfile { get; set; } /// /// Defines AudienceAgeGroup for the visual briefing feature. /// public AudienceAgeGroup AudienceAgeGroup { get; set; } /// /// Defines AudienceOrganizationalLevel for the visual briefing feature. /// public AudienceOrganizationalLevel AudienceOrganizationalLevel { get; set; } /// /// Defines AudienceExpertise for the visual briefing feature. /// public AudienceExpertise AudienceExpertise { get; set; } /// /// Defines ShowSourceReferences for the visual briefing feature. /// public bool ShowSourceReferences { get; set; } = true; /// /// Defines OptimizeImages for the visual briefing feature. /// public bool OptimizeImages { get; set; } = true; /// /// Defines Instruction for the visual briefing feature. /// public string Instruction { get; set; } = string.Empty; /// /// Defines ProtectionLevel for the visual briefing feature. /// public VisualBriefingProtectionLevel ProtectionLevel { get; set; } = VisualBriefingProtectionLevel.INTERNAL; /// /// Defines CustomProtectionLevel for the visual briefing feature. /// public string CustomProtectionLevel { get; set; } = string.Empty; }