AI-Studio/app/MindWork AI Studio/Assistants/VisualBriefing/VisualBriefingLocalSettings.cs
2026-09-07 16:09:00 +02:00

97 lines
3.2 KiB
C#

using AIStudio.Assistants.SlideBuilder;
using AIStudio.Settings;
using System.Text.Json.Serialization;
namespace AIStudio.Assistants.VisualBriefing;
/// <summary>
/// Defines <c>VisualBriefingLocalSettings</c> for the visual briefing feature.
/// </summary>
public sealed class VisualBriefingLocalSettings
{
/// <summary>
/// Defines <c>ProviderId</c> for the visual briefing feature.
/// </summary>
public string ProviderId { get; set; } = string.Empty;
/// <summary>
/// Defines <c>ModelId</c> for the visual briefing feature.
/// </summary>
public string ModelId { get; set; } = string.Empty;
/// <summary>
/// Defines <c>ProfileIds</c> for the visual briefing feature.
/// </summary>
public HashSet<string> 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);
}
}
/// <summary>
/// Defines <c>TargetLanguage</c> for the visual briefing feature.
/// </summary>
public CommonLanguages TargetLanguage { get; set; } = CommonLanguages.EN_US;
/// <summary>
/// Defines <c>CustomTargetLanguage</c> for the visual briefing feature.
/// </summary>
public string CustomTargetLanguage { get; set; } = string.Empty;
/// <summary>
/// Defines <c>AudienceProfile</c> for the visual briefing feature.
/// </summary>
public AudienceProfile AudienceProfile { get; set; }
/// <summary>
/// Defines <c>AudienceAgeGroup</c> for the visual briefing feature.
/// </summary>
public AudienceAgeGroup AudienceAgeGroup { get; set; }
/// <summary>
/// Defines <c>AudienceOrganizationalLevel</c> for the visual briefing feature.
/// </summary>
public AudienceOrganizationalLevel AudienceOrganizationalLevel { get; set; }
/// <summary>
/// Defines <c>AudienceExpertise</c> for the visual briefing feature.
/// </summary>
public AudienceExpertise AudienceExpertise { get; set; }
/// <summary>
/// Defines <c>ShowSourceReferences</c> for the visual briefing feature.
/// </summary>
public bool ShowSourceReferences { get; set; } = true;
/// <summary>
/// Defines <c>OptimizeImages</c> for the visual briefing feature.
/// </summary>
public bool OptimizeImages { get; set; } = true;
/// <summary>
/// Defines <c>Instruction</c> for the visual briefing feature.
/// </summary>
public string Instruction { get; set; } = string.Empty;
/// <summary>
/// Defines <c>ProtectionLevel</c> for the visual briefing feature.
/// </summary>
public VisualBriefingProtectionLevel ProtectionLevel { get; set; } = VisualBriefingProtectionLevel.INTERNAL;
/// <summary>
/// Defines <c>CustomProtectionLevel</c> for the visual briefing feature.
/// </summary>
public string CustomProtectionLevel { get; set; } = string.Empty;
}