using System;
using System.Collections.Generic;
using System.Text.Json.Serialization;
namespace Deploymentcenter.Client.Models
{
///
/// Model for per-package manifest.json stored inside package.tar.gz
/// and beside it on the LEMP release server.
///
public class PackageManifest
{
[JsonPropertyName("projectId")]
public string ProjectId { get; set; } = string.Empty;
[JsonPropertyName("version")]
public string Version { get; set; } = string.Empty;
[JsonPropertyName("channel")]
public string Channel { get; set; } = "prod";
[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("changelog")]
public string Changelog { get; set; } = string.Empty;
[JsonPropertyName("files")]
public List Files { get; set; } = new List();
}
///
/// File entry item inside manifest.json for integrity checking and repair.
///
public class PackageFileEntry
{
[JsonPropertyName("path")]
public string Path { get; set; } = string.Empty;
[JsonPropertyName("sha256")]
public string Sha256 { get; set; } = string.Empty;
[JsonPropertyName("sizeBytes")]
public long SizeBytes { get; set; }
}
}