summaryrefslogtreecommitdiff
path: root/Media.cs
diff options
context:
space:
mode:
authorJake Mannens <jake@asger.xyz>2023-08-15 15:49:14 +1000
committerJake Mannens <jake@asger.xyz>2025-08-18 10:59:32 +1000
commit38c60cee378b9c2ad42fc9dc79bc492b919a68f5 (patch)
tree6b62f84aab4b7866432e5da8ae8fcb889795d58b /Media.cs
parent07a4c7ead01514bd3f304f00abc38140a1d73634 (diff)
Convert Razor pages to Blazor
Diffstat (limited to 'Media.cs')
-rw-r--r--Media.cs43
1 files changed, 43 insertions, 0 deletions
diff --git a/Media.cs b/Media.cs
new file mode 100644
index 0000000..68ae4c4
--- /dev/null
+++ b/Media.cs
@@ -0,0 +1,43 @@
+using Microsoft.AspNetCore.Mvc.ModelBinding.Binders;
+using Microsoft.EntityFrameworkCore;
+using System.ComponentModel.DataAnnotations;
+using System.ComponentModel.DataAnnotations.Schema;
+using System.Net.NetworkInformation;
+
+namespace HyperBooru;
+
+public class Media : HBObject {
+ public string Checksum { get; set; }
+ public string MimeType { get; set; }
+ public string? ShortDescription { get; set; }
+ public string? LongDescription { get; set; }
+ public virtual List<UploadedFile> UploadedFiles { get; set; } = new();
+
+ public bool IsIngest => Tags
+ .Select(t => t.TagDefinition)
+ .Any(td => td.Source == TagSource.Internal && td.Name == "ingest");
+
+ public string? DisplayName {
+ get {
+ if(ShortDescription is not null)
+ return ShortDescription;
+
+ return UploadedFiles
+ .OrderBy(f => f.UploadTime)
+ .First()?.Filename;
+ }
+ }
+}
+
+public record UploadedFile {
+ [Key]
+ [DatabaseGenerated(DatabaseGeneratedOption.Identity)]
+ public int UploadedFileId { get; set; }
+ public string OriginalChecksum { get; set; }
+ public string? Filename { get; set; }
+ public DateTime UploadTime { get; set; } = DateTime.Now;
+ public DateTime? LastAccessTime { get; set; }
+ public DateTime? LastWriteTime { get; set; }
+ public DateTime? CreateTime { get; set; }
+ public virtual Media Media { get; set; }
+} \ No newline at end of file