From 6c53f3dc43f072dce4ffe4a1bd306074dd20ff39 Mon Sep 17 00:00:00 2001 From: Jake Mannens Date: Sun, 17 Aug 2025 22:10:27 +1000 Subject: Initial commit --- ApiRecords.cs | 53 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 ApiRecords.cs (limited to 'ApiRecords.cs') diff --git a/ApiRecords.cs b/ApiRecords.cs new file mode 100644 index 0000000..69160c5 --- /dev/null +++ b/ApiRecords.cs @@ -0,0 +1,53 @@ +namespace HyperBooru.ApiRecords; + +public class TagInfo { + public string Id { get; init; } + public string? Namespace { get; init; } + public string Name { get; init; } + public bool IsImplicit { get; init; } +} + +public class MediaInfo { + public string Id { get; init; } + public string Checksum { get; init; } + public string MimeType { get; init; } + public string? ShortDescription { get; init; } + public string? LongDescription { get; init; } + + public UploadedFileInfo[] UploadedFileHistory { get; init; } + + public MediaInfo(DbMedia media) { + Id = media.Guid.ToString(); + Checksum = media.Checksum; + MimeType = media.MimeType; + ShortDescription = media.ShortDescription; + LongDescription = media.LongDescription; + + UploadedFileHistory = media.UploadedFiles + .Select(uf => new UploadedFileInfo(uf)) + .ToArray(); + } +} + +public record MediaUpdateInfo { + public string? ShortDescription { get; init; } + public string? LongDescription { get; init; } +} + +public class UploadedFileInfo { + public string Checksum { get; init; } + public string? Filename { get; init; } + public DateTime UploadTime { get; init; } + public DateTime? LastAccessTime { get; init; } + public DateTime? LastWriteTime { get; init; } + public DateTime? CreateTime { get; init; } + + public UploadedFileInfo(DbUploadedFile uploadedFile) { + Checksum = uploadedFile.OriginalChecksum; + Filename = uploadedFile.Filename; + UploadTime = uploadedFile.UploadTime; + LastAccessTime = uploadedFile.LastAccessTime; + LastWriteTime = uploadedFile.LastWriteTime; + CreateTime = uploadedFile.CreateTime; + } +} \ No newline at end of file -- cgit v1.3