2021-09-27 12:42:46 +00:00
|
|
|
using System;
|
|
|
|
using System.Collections.Generic;
|
|
|
|
using System.Text.Json.Serialization;
|
|
|
|
using Wabbajack.DTOs.JsonConverters;
|
|
|
|
|
2021-10-23 16:51:17 +00:00
|
|
|
namespace Wabbajack.DTOs;
|
|
|
|
|
|
|
|
[JsonName("ModListMetadata, Wabbajack.Lib")]
|
|
|
|
[JsonAlias("ModListMetadata")]
|
|
|
|
public class ModlistMetadata
|
2021-09-27 12:42:46 +00:00
|
|
|
{
|
2021-10-23 16:51:17 +00:00
|
|
|
[JsonPropertyName("title")] public string Title { get; set; } = string.Empty;
|
|
|
|
|
|
|
|
[JsonPropertyName("description")] public string Description { get; set; } = string.Empty;
|
|
|
|
|
|
|
|
[JsonPropertyName("author")] public string Author { get; set; } = string.Empty;
|
2021-09-27 12:42:46 +00:00
|
|
|
|
2021-10-23 16:51:17 +00:00
|
|
|
[JsonPropertyName("maintainers")] public string[] Maintainers { get; set; } = Array.Empty<string>();
|
2021-09-27 12:42:46 +00:00
|
|
|
|
2021-10-23 16:51:17 +00:00
|
|
|
[JsonPropertyName("game")] public Game Game { get; set; }
|
2021-09-27 12:42:46 +00:00
|
|
|
|
2021-10-23 16:51:17 +00:00
|
|
|
[JsonPropertyName("official")] public bool Official { get; set; }
|
2021-09-27 12:42:46 +00:00
|
|
|
|
2021-12-30 00:15:37 +00:00
|
|
|
[JsonPropertyName("tags")] public List<string> Tags { get; set; } = new();
|
2021-09-27 12:42:46 +00:00
|
|
|
|
2021-10-23 16:51:17 +00:00
|
|
|
[JsonPropertyName("nsfw")] public bool NSFW { get; set; }
|
2021-09-27 12:42:46 +00:00
|
|
|
|
2021-10-23 16:51:17 +00:00
|
|
|
[JsonPropertyName("utility_list")] public bool UtilityList { get; set; }
|
2021-09-27 12:42:46 +00:00
|
|
|
|
2021-10-23 16:51:17 +00:00
|
|
|
[JsonPropertyName("image_contains_title")]
|
|
|
|
public bool ImageContainsTitle { get; set; }
|
2021-09-27 12:42:46 +00:00
|
|
|
|
2023-10-12 18:33:06 +00:00
|
|
|
[JsonPropertyName("DisplayVersionOnlyInInstallerView")] public bool DisplayVersionOnlyInInstallerView { get; set; }
|
|
|
|
|
2021-10-23 16:51:17 +00:00
|
|
|
[JsonPropertyName("force_down")] public bool ForceDown { get; set; }
|
2021-09-27 12:42:46 +00:00
|
|
|
|
2021-10-23 16:51:17 +00:00
|
|
|
[JsonPropertyName("links")] public LinksObject Links { get; set; } = new();
|
2021-09-27 12:42:46 +00:00
|
|
|
|
2021-10-23 16:51:17 +00:00
|
|
|
[JsonPropertyName("download_metadata")]
|
|
|
|
public DownloadMetadata? DownloadMetadata { get; set; }
|
2021-09-27 12:42:46 +00:00
|
|
|
|
2021-10-23 16:51:17 +00:00
|
|
|
[JsonPropertyName("version")] public Version? Version { get; set; }
|
2021-09-27 12:42:46 +00:00
|
|
|
|
2021-10-23 16:51:17 +00:00
|
|
|
[JsonIgnore] public ModListSummary ValidationSummary { get; set; } = new();
|
2021-09-27 12:42:46 +00:00
|
|
|
|
2021-10-23 16:51:17 +00:00
|
|
|
[JsonPropertyName("dateCreated")] public DateTime DateCreated { get; set; } = DateTime.UnixEpoch;
|
2021-09-27 12:42:46 +00:00
|
|
|
|
2021-10-23 16:51:17 +00:00
|
|
|
[JsonPropertyName("dateUpdated")] public DateTime DateUpdated { get; set; }
|
2022-03-30 03:39:48 +00:00
|
|
|
|
|
|
|
[JsonPropertyName("repositoryName")] public string RepositoryName { get; set; } = string.Empty;
|
|
|
|
[JsonIgnore] public string NamespacedName => $"{RepositoryName}/{Links.MachineURL}";
|
2021-09-27 12:42:46 +00:00
|
|
|
}
|