#nullable enable
using System;
using System.Text.Json.Serialization;
using MediaBrowser.Model.Plugins;
namespace MediaBrowser.Common.Plugins
{
///
/// Defines a Plugin manifest file.
///
public class PluginManifest
{
///
/// Gets or sets the category of the plugin.
///
public string Category { get; set; } = string.Empty;
///
/// Gets or sets the changelog information.
///
public string Changelog { get; set; } = string.Empty;
///
/// Gets or sets the description of the plugin.
///
public string Description { get; set; } = string.Empty;
///
/// Gets or sets the Global Unique Identifier for the plugin.
///
[JsonPropertyName("Guid")]
public Guid Id { get; set; }
///
/// Gets or sets the Name of the plugin.
///
public string Name { get; set; } = string.Empty;
///
/// Gets or sets an overview of the plugin.
///
public string Overview { get; set; } = string.Empty;
///
/// Gets or sets the owner of the plugin.
///
public string Owner { get; set; } = string.Empty;
///
/// Gets or sets the compatibility version for the plugin.
///
public string TargetAbi { get; set; } = string.Empty;
///
/// Gets or sets the upper compatibility version for the plugin.
///
public string MaxAbi { get; set; } = string.Empty;
///
/// Gets or sets the timestamp of the plugin.
///
public DateTime Timestamp { get; set; }
///
/// Gets or sets the Version number of the plugin.
///
public string Version { get; set; } = string.Empty;
///
/// Gets or sets a value indicating the operational status of this plugin.
///
public PluginStatus Status { get; set; }
///
/// Gets or sets a value indicating whether this plugin should automatically update.
///
public bool AutoUpdate { get; set; } = true;
///
/// Gets or sets a value indicating whether this plugin has an image.
/// Image must be located in the local plugin folder.
///
public string? ImageUrl { get; set; }
}
}