using System;
using System.Diagnostics.CodeAnalysis;
using System.Text;
using System.Text.Json.Serialization;
namespace FastGithub.Upgrade
{
    /// 
    /// 发行记录
    /// 
    sealed class GithubRelease
    {
        /// 
        /// 标签名
        /// 
        [JsonPropertyName("tag_name")]
        public string TagName { get; set; } = string.Empty;
        /// 
        /// 是否预览版本
        /// 
        [JsonPropertyName("prerelease")]
        public bool Prerelease { get; set; }
        /// 
        /// 发行说明
        /// 
        [JsonPropertyName("body")]
        public string Body { get; set; } = string.Empty;
        /// 
        /// 发行时间
        /// 
        [JsonPropertyName("created_at")]
        public DateTime CreatedAt { get; set; }
        /// 
        /// 下载页面
        /// 
        [AllowNull]
        [JsonPropertyName("html_url")]
        public Uri HtmlUrl { get; set; }
        /// 
        /// 获取产品版本
        /// 
        /// 
        public ProductionVersion GetProductionVersion()
        {
            return ProductionVersion.Parse(this.TagName);
        }
        public override string ToString()
        {
            return new StringBuilder()
                .Append("最新版本:").AppendLine(this.TagName)
                .Append("发布时间:").AppendLine(this.CreatedAt.ToString())
                .AppendLine("更新内容:").AppendLine(this.Body)
                .ToString();
        }
    }
}