cfcoreapi/CFCoreAPI/Endpoints/Files/Responses/ModFileResponse.cs

173 lines
5.6 KiB
C#

using System.Text.Json.Serialization;
namespace CFCoreAPI.Endpoints.Files.Responses
{
public struct ModFileResponse
{
[JsonConstructor]
public ModFileResponse(
DataModel data
)
{
this.Data = data;
}
public DataModel Data { get; }
public struct DataModel
{
[JsonConstructor]
public DataModel(
int id,
int gameId,
int modId,
bool isAvailable,
string displayName,
string fileName,
int releaseType,
int fileStatus,
List<HashModel> hashes,
DateTime fileDate,
int fileLength,
int downloadCount,
string downloadUrl,
List<string> gameVersions,
List<SortableGameVersionModel> sortableGameVersions,
List<DependencyModel> dependencies,
bool exposeAsAlternative,
int parentProjectFileId,
int alternateFileId,
bool isServerPack,
int serverPackFileId,
int fileFingerprint,
List<ModuleModel> modules
)
{
this.Id = id;
this.GameId = gameId;
this.ModId = modId;
this.IsAvailable = isAvailable;
this.DisplayName = displayName;
this.FileName = fileName;
this.ReleaseType = releaseType;
this.FileStatus = fileStatus;
this.Hashes = hashes;
this.FileDate = fileDate;
this.FileLength = fileLength;
this.DownloadCount = downloadCount;
this.DownloadUrl = downloadUrl;
this.GameVersions = gameVersions;
this.SortableGameVersions = sortableGameVersions;
this.Dependencies = dependencies;
this.ExposeAsAlternative = exposeAsAlternative;
this.ParentProjectFileId = parentProjectFileId;
this.AlternateFileId = alternateFileId;
this.IsServerPack = isServerPack;
this.ServerPackFileId = serverPackFileId;
this.FileFingerprint = fileFingerprint;
this.Modules = modules;
}
public int Id { get; }
public int GameId { get; }
public int ModId { get; }
public bool IsAvailable { get; }
public string DisplayName { get; }
public string FileName { get; }
public int ReleaseType { get; }
public int FileStatus { get; }
public IReadOnlyList<HashModel> Hashes { get; }
public DateTime FileDate { get; }
public int FileLength { get; }
public int DownloadCount { get; }
public string DownloadUrl { get; }
public IReadOnlyList<string> GameVersions { get; }
public IReadOnlyList<SortableGameVersionModel> SortableGameVersions { get; }
public IReadOnlyList<DependencyModel> Dependencies { get; }
public bool ExposeAsAlternative { get; }
public int ParentProjectFileId { get; }
public int AlternateFileId { get; }
public bool IsServerPack { get; }
public int ServerPackFileId { get; }
public int FileFingerprint { get; }
public IReadOnlyList<ModuleModel> Modules { get; }
}
public struct DependencyModel
{
[JsonConstructor]
public DependencyModel(
int modId,
int relationType
)
{
this.ModId = modId;
this.RelationType = relationType;
}
public int ModId { get; }
public int RelationType { get; }
}
public struct HashModel
{
[JsonConstructor]
public HashModel(
string value,
int algo
)
{
this.Value = value;
this.Algo = algo;
}
public string Value { get; }
public int Algo { get; }
}
public struct ModuleModel
{
[JsonConstructor]
public ModuleModel(
string name,
int fingerprint
)
{
this.Name = name;
this.Fingerprint = fingerprint;
}
public string Name { get; }
public int Fingerprint { get; }
}
public struct SortableGameVersionModel
{
[JsonConstructor]
public SortableGameVersionModel(
string gameVersionName,
string gameVersionPadded,
string gameVersion,
DateTime gameVersionReleaseDate,
int gameVersionTypeId
)
{
this.GameVersionName = gameVersionName;
this.GameVersionPadded = gameVersionPadded;
this.GameVersion = gameVersion;
this.GameVersionReleaseDate = gameVersionReleaseDate;
this.GameVersionTypeId = gameVersionTypeId;
}
public string GameVersionName { get; }
public string GameVersionPadded { get; }
public string GameVersion { get; }
public DateTime GameVersionReleaseDate { get; }
public int GameVersionTypeId { get; }
}
}
}