using Newtonsoft.Json;
namespace StardewModdingAPI.Models
{
/// Generic metadata about a mod.
internal class ModInfoModel
{
/*********
** Accessors
*********/
/// The mod name.
public string Name { get; }
/// The mod's semantic version number.
public string Version { get; }
/// The mod's web URL.
public string Url { get; }
/// The error message indicating why the mod is invalid (if applicable).
public string Error { get; }
/*********
** Public methods
*********/
/// Construct a valid instance.
/// The mod name.
/// The mod's semantic version number.
/// The mod's web URL.
/// The error message indicating why the mod is invalid (if applicable).
[JsonConstructor]
public ModInfoModel(string name, string version, string url, string error = null)
{
this.Name = name;
this.Version = version;
this.Url = url;
this.Error = error; // mainly initialised here for the JSON deserialiser
}
/// Construct an valid instance.
/// The error message indicating why the mod is invalid.
public ModInfoModel(string error)
{
this.Error = error;
}
}
}