using AIStudio.Chat;
namespace AIStudio.Assistants.VisualBriefing;
///
/// Defines VisualBriefingManifest for the visual briefing feature.
///
public sealed class VisualBriefingManifest
{
///
/// Defines ManifestVersion for the visual briefing feature.
///
public int ManifestVersion { get; set; } = VisualBriefingVersions.MANIFEST;
///
/// Defines BriefingId for the visual briefing feature.
///
public Guid BriefingId { get; set; }
///
/// Defines Name for the visual briefing feature.
///
public string Name { get; set; } = string.Empty;
///
/// Defines Author for the visual briefing feature.
///
public string Author { get; set; } = string.Empty;
///
/// Defines CreatedAtUtc for the visual briefing feature.
///
public DateTimeOffset CreatedAtUtc { get; set; }
///
/// Defines ModifiedAtUtc for the visual briefing feature.
///
public DateTimeOffset ModifiedAtUtc { get; set; }
///
/// Defines Settings for the visual briefing feature.
///
public VisualBriefingLocalSettings Settings { get; set; } = new();
///
/// What the text sent to this briefing demands, because of where it came from.
///
///
/// An answer written from mails demands here what it demanded in its chat, and every stage of every build
/// holds to it. The restrictions are set when the briefing is created for the text, and they never loosen:
/// the text may still be part of the instruction, and of the versions built from it. They live here rather
/// than in the settings, which the editor replaces with every save. A briefing nothing was sent to, or one
/// written before this property existed, demands nothing.
///
public ChatRestrictions Restrictions { get; init; } = ChatRestrictions.NONE;
///
/// Defines Sources for the visual briefing feature.
///
public List Sources { get; set; } = [];
///
/// Defines Versions for the visual briefing feature.
///
public List Versions { get; set; } = [];
}