summaryrefslogtreecommitdiff
path: root/ApiRecords.cs
diff options
context:
space:
mode:
Diffstat (limited to 'ApiRecords.cs')
-rw-r--r--ApiRecords.cs53
1 files changed, 53 insertions, 0 deletions
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