using System;
using System.Collections.Generic;
using System.Text.Json.Serialization;
namespace MediaBrowser.Model.Updates
{
    /// 
    /// Class PackageInfo.
    /// 
    public class PackageInfo
    {
        /// 
        /// Initializes a new instance of the  class.
        /// 
        public PackageInfo()
        {
            Versions = Array.Empty();
            Category = string.Empty;
            Name = string.Empty;
            Overview = string.Empty;
            Owner = string.Empty;
            Description = string.Empty;
        }
        /// 
        /// Gets or sets the name.
        /// 
        /// The name.
        [JsonPropertyName("name")]
        public string Name { get; set; }
        /// 
        /// Gets or sets a long description of the plugin containing features or helpful explanations.
        /// 
        /// The description.
        [JsonPropertyName("description")]
        public string Description { get; set; }
        /// 
        /// Gets or sets a short overview of what the plugin does.
        /// 
        /// The overview.
        [JsonPropertyName("overview")]
        public string Overview { get; set; }
        /// 
        /// Gets or sets the owner.
        /// 
        /// The owner.
        [JsonPropertyName("owner")]
        public string Owner { get; set; }
        /// 
        /// Gets or sets the category.
        /// 
        /// The category.
        [JsonPropertyName("category")]
        public string Category { get; set; }
        /// 
        /// Gets or sets the guid of the assembly associated with this plugin.
        /// This is used to identify the proper item for automatic updates.
        /// 
        /// The name.
        [JsonPropertyName("guid")]
        public Guid Id { get; set; }
        /// 
        /// Gets or sets the versions.
        /// 
        /// The versions.
        [JsonPropertyName("versions")]
#pragma warning disable CA2227 // Collection properties should be read only
        public IList Versions { get; set; }
#pragma warning restore CA2227 // Collection properties should be read only
        /// 
        /// Gets or sets the image url for the package.
        /// 
        [JsonPropertyName("imageUrl")]
        public string? ImageUrl { get; set; }
    }
}