summaryrefslogtreecommitdiffstats
path: root/src/Db.cs
diff options
context:
space:
mode:
authorivarlovlie <git@ivarlovlie.no>2023-01-16 19:40:25 +0100
committerivarlovlie <git@ivarlovlie.no>2023-01-16 19:41:03 +0100
commitb36740899a577ac387f52229c2e714a9f09f2b84 (patch)
tree68f17b027829111ab369a3c545f96cacfb479143 /src/Db.cs
parent7620b379d4284354715f82c226ca77c94b25a980 (diff)
downloadblob-bin-b36740899a577ac387f52229c2e714a9f09f2b84.tar.xz
blob-bin-b36740899a577ac387f52229c2e714a9f09f2b84.zip
refactor: Rename Eva to Db
Diffstat (limited to 'src/Db.cs')
-rw-r--r--src/Db.cs52
1 files changed, 52 insertions, 0 deletions
diff --git a/src/Db.cs b/src/Db.cs
new file mode 100644
index 0000000..39deefa
--- /dev/null
+++ b/src/Db.cs
@@ -0,0 +1,52 @@
+using Microsoft.EntityFrameworkCore;
+
+namespace BlobBin;
+
+public sealed class Db : DbContext
+{
+ private readonly bool migrated;
+
+ public Db(DbContextOptions<Db> options) : base(options) {
+ if (!migrated) {
+ Database.Migrate();
+ migrated = true;
+ }
+ }
+
+ public DbSet<File> Files { get; set; }
+ public DbSet<Paste> Pastes { get; set; }
+
+ protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder) {
+ optionsBuilder.UseSqlite("data source = AppData/main.db");
+ base.OnConfiguring(optionsBuilder);
+ }
+}
+
+public class UploadEntityBase
+{
+ public UploadEntityBase() {
+ Id = Guid.NewGuid();
+ CreatedAt = DateTime.UtcNow;
+ }
+
+ public Guid Id { get; set; }
+ public string PublicId { get; set; }
+ public DateTime CreatedAt { get; set; }
+ public string CreatedBy { get; set; }
+ public DateTime? DeletedAt { get; set; }
+ public string? PasswordHash { get; set; }
+ public bool Singleton { get; set; }
+ public string? AutoDeleteAfter { get; set; }
+ public string? MimeType { get; set; }
+ public string DeletionKey { get; set; }
+ public string? Name { get; set; }
+ public long Length { get; set; }
+}
+
+public class Paste : UploadEntityBase
+{
+ public string? Content { get; set; }
+}
+
+public class File : UploadEntityBase
+{ } \ No newline at end of file