From ff46fb8f29f69dc3953d701184c4d7e4b2750a54 Mon Sep 17 00:00:00 2001 From: Neil Dorin Date: Mon, 22 Sep 2025 14:55:58 -0600 Subject: [PATCH] feat: Add versioning support to EssentialsConfig Introduce `Versions` property in `EssentialsConfig` to hold version information. Add `VersionData` class for Essentials and package versions, and `NugetVersion` class for individual package details. Retain and document `SystemTemplateConfigs` class. --- .../Config/Essentials/EssentialsConfig.cs | 59 +++++++++++++++++-- 1 file changed, 54 insertions(+), 5 deletions(-) diff --git a/src/PepperDash.Essentials.Core/Config/Essentials/EssentialsConfig.cs b/src/PepperDash.Essentials.Core/Config/Essentials/EssentialsConfig.cs index e1a46b54..9665938f 100644 --- a/src/PepperDash.Essentials.Core/Config/Essentials/EssentialsConfig.cs +++ b/src/PepperDash.Essentials.Core/Config/Essentials/EssentialsConfig.cs @@ -85,6 +85,11 @@ namespace PepperDash.Essentials.Core.Config public List Rooms { get; set; } + /// + /// Gets or sets the Versions + /// + public VersionData Versions { get; set; } + /// /// Initializes a new instance of the class. /// @@ -94,11 +99,55 @@ namespace PepperDash.Essentials.Core.Config Rooms = new List(); } } - - /// - /// Represents a SystemTemplateConfigs - /// - public class SystemTemplateConfigs + + /// + /// Represents version data for Essentials and its packages + /// + public class VersionData + { + /// + /// Gets or sets the Essentials version + /// + [JsonProperty("essentials")] + public NugetVersion Essentials { get; set; } + + /// + /// Gets or sets the list of Packages + /// + [JsonProperty("packages")] + public List Packages { get; set; } + + /// + /// Initializes a new instance of the class. + /// + public VersionData() + { + Packages = new List(); + } + } + + /// + /// Represents a NugetVersion + /// + public class NugetVersion + { + /// + /// Gets or sets the Version + /// + [JsonProperty("version")] + public string Version { get; set; } + + /// + /// Gets or sets the PackageId + /// + [JsonProperty("packageId")] + public string PackageId { get; set; } + } + + /// + /// Represents a SystemTemplateConfigs + /// + public class SystemTemplateConfigs { /// /// Gets or sets the System