namespace AIStudio.Tools.Services;
///
/// What a configuration plugin would set up, read from the archive before anything is installed.
///
///
/// A configuration takes effect the moment it is installed, and it has no on/off switch. The import
/// dialog is therefore the only place where users can see what they are about to accept, which is
/// why this carries the destinations of providers and data sources and not just their number.
///
/// The providers and data sources, together with where they send data to.
/// How many chat templates the configuration adds.
/// How many profiles the configuration adds.
/// How many document analysis policies the configuration adds.
/// How many settings the configuration takes over.
/// How many mandatory information texts users must accept.
/// How many introductions the configuration adds to the welcome page.
public sealed record ConfigurationPluginImportSummary(
IReadOnlyList Destinations,
int ChatTemplates,
int Profiles,
int DocumentAnalysisPolicies,
int DeclaredSettings,
int MandatoryInfos,
int Introductions)
{
///
/// True when the configuration sets up anything at all.
///
public bool HasAnyContent =>
this.Destinations.Count > 0 ||
this.ChatTemplates > 0 ||
this.Profiles > 0 ||
this.DocumentAnalysisPolicies > 0 ||
this.DeclaredSettings > 0 ||
this.MandatoryInfos > 0 ||
this.Introductions > 0;
}