2026-08-02 21:41:12 +02:00
|
|
|
using System.Text.Json;
|
|
|
|
|
using System.Text.Json.Serialization;
|
|
|
|
|
|
|
|
|
|
namespace AIStudio.Assistants.VisualBriefing;
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// Defines one bounded declarative interaction control.
|
|
|
|
|
/// </summary>
|
|
|
|
|
[JsonUnmappedMemberHandling(JsonUnmappedMemberHandling.Disallow)]
|
|
|
|
|
[CanonicalJsonShape("42306121")]
|
|
|
|
|
public sealed class VisualBriefingControlSpec
|
|
|
|
|
{
|
|
|
|
|
/// <summary>Gets or sets the globally unique control identifier.</summary>
|
|
|
|
|
[JsonRequired]
|
2026-11-03 14:20:41 +01:00
|
|
|
public string ControlId { get; set; } = string.Empty;
|
2026-08-02 21:41:12 +02:00
|
|
|
|
|
|
|
|
/// <summary>Gets or sets the owning component identifier.</summary>
|
|
|
|
|
[JsonRequired]
|
2026-11-03 14:20:41 +01:00
|
|
|
public string ComponentId { get; set; } = string.Empty;
|
2026-08-02 21:41:12 +02:00
|
|
|
|
|
|
|
|
/// <summary>Gets or sets the control kind.</summary>
|
|
|
|
|
[JsonRequired]
|
2026-11-03 14:20:41 +01:00
|
|
|
public VisualBriefingControlKind Kind { get; set; }
|
2026-08-02 21:41:12 +02:00
|
|
|
|
|
|
|
|
/// <summary>Gets or sets the deterministic initial value.</summary>
|
|
|
|
|
[JsonRequired]
|
2026-11-03 14:20:41 +01:00
|
|
|
public JsonElement InitialValue { get; set; }
|
2026-08-02 21:41:12 +02:00
|
|
|
|
|
|
|
|
/// <summary>Gets or sets the selectable options.</summary>
|
|
|
|
|
[JsonRequired]
|
2026-11-03 14:20:41 +01:00
|
|
|
public List<VisualBriefingControlOption> Options { get; set; } = [];
|
2026-08-02 21:41:12 +02:00
|
|
|
}
|