using System.Collections.Generic;
using System.Runtime.InteropServices.JavaScript;
namespace API.DTOs.Update;
/// 
/// Update Notification denoting a new release available for user to update to
/// 
public sealed record UpdateNotificationDto
{
    /// 
    /// Current installed Version
    /// 
    public required string CurrentVersion { get; init; }
    /// 
    /// Semver of the release version
    /// 0.4.3
    /// 
    public required string UpdateVersion { get; set; }
    /// 
    /// Release body in HTML
    /// 
    public required string UpdateBody { get; init; }
    /// 
    /// Title of the release
    /// 
    public required string UpdateTitle { get; set; }
    /// 
    /// Github Url
    /// 
    public required string UpdateUrl { get; set; }
    /// 
    /// If this install is within Docker
    /// 
    public bool IsDocker { get; init; }
    /// 
    /// Is this a pre-release
    /// 
    public bool IsPrerelease { get; init; }
    /// 
    /// Date of the publish
    /// 
    public required string PublishDate { get; set; }
    /// 
    /// Is the server on a nightly within this release
    /// 
    public bool IsOnNightlyInRelease { get; set; }
    /// 
    /// Is the server on an older version
    /// 
    public bool IsReleaseNewer { get; set; }
    /// 
    /// Is the server on this version
    /// 
    public bool IsReleaseEqual { get; set; }
    public IList Added { get; set; }
    public IList Removed { get; set; }
    public IList Changed { get; set; }
    public IList Fixed { get; set; }
    public IList Theme { get; set; }
    public IList Developer { get; set; }
    public IList Api { get; set; }
    public IList FeatureRequests { get; set; }
    public IList KnownIssues { get; set; }
    /// 
    /// The part above the changelog part
    /// 
    public string BlogPart { get; set; }
}