using System; using System.Collections.Generic; using System.Text.Json.Serialization; namespace Deploymentcenter.Client.Models { /// /// Model for channel-level latest.json served by LEMP / Nginx or Deploymentcenter API. /// public class ReleaseManifest { [JsonPropertyName("projectId")] public string ProjectId { get; set; } = string.Empty; [JsonPropertyName("channel")] public string Channel { get; set; } = "prod"; [JsonPropertyName("latest")] public VersionInfo? Latest { get; set; } [JsonPropertyName("versions")] public List Versions { get; set; } = new List(); } /// /// Individual release version details. /// public class VersionInfo { [JsonPropertyName("version")] public string Version { get; set; } = string.Empty; [JsonPropertyName("buildDate")] public string BuildDate { get; set; } = string.Empty; [JsonPropertyName("gitCommit")] public string GitCommit { get; set; } = string.Empty; [JsonPropertyName("gitCommitShort")] public string GitCommitShort { get; set; } = string.Empty; [JsonPropertyName("packageUrl")] public string PackageUrl { get; set; } = string.Empty; [JsonPropertyName("sha256")] public string Sha256 { get; set; } = string.Empty; [JsonPropertyName("sizeBytes")] public long SizeBytes { get; set; } [JsonPropertyName("changelog")] public string Changelog { get; set; } = string.Empty; [JsonPropertyName("isCritical")] public bool IsCritical { get; set; } } }