diff options
| author | Jake Mannens <jake@asger.xyz> | 2025-08-17 22:10:27 +1000 |
|---|---|---|
| committer | Jake Mannens <jake@asger.xyz> | 2025-08-18 10:59:28 +1000 |
| commit | 6c53f3dc43f072dce4ffe4a1bd306074dd20ff39 (patch) | |
| tree | 494335104504dca462a3837c3993e2add8e72bad /DbMedia.cs | |
Initial commit
Diffstat (limited to 'DbMedia.cs')
| -rw-r--r-- | DbMedia.cs | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/DbMedia.cs b/DbMedia.cs new file mode 100644 index 0000000..311e412 --- /dev/null +++ b/DbMedia.cs @@ -0,0 +1,42 @@ +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 DbMedia : DbObject { + public string Checksum { get; set; } + public string MimeType { get; set; } + public string? ShortDescription { get; set; } + public string? LongDescription { get; set; } + public virtual List<DbUploadedFile> UploadedFiles { get; set; } = new(); + + public DbMedia() => + base.ObjectType = ObjectType.Media; + + public string? DisplayName { + get { + if(ShortDescription is not null) + return ShortDescription; + + return UploadedFiles + .OrderBy(f => f.UploadTime) + .First()?.Filename; + } + } +} + +public record DbUploadedFile { + [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 DbMedia Media { get; set; } +}
\ No newline at end of file |
