summaryrefslogtreecommitdiff
path: root/HBContext.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 /HBContext.cs
parent07a4c7ead01514bd3f304f00abc38140a1d73634 (diff)
Convert Razor pages to Blazor
Diffstat (limited to 'HBContext.cs')
-rw-r--r--HBContext.cs41
1 files changed, 41 insertions, 0 deletions
diff --git a/HBContext.cs b/HBContext.cs
new file mode 100644
index 0000000..17b8b3d
--- /dev/null
+++ b/HBContext.cs
@@ -0,0 +1,41 @@
+using Microsoft.EntityFrameworkCore;
+using HyperBooru.Services;
+
+namespace HyperBooru;
+
+public class HBContext : DbContext {
+ public DbSet<HBObject> Objects { get; set; }
+ public DbSet<TagDefinition> TagDefinitions { get; set; }
+ public DbSet<Tag> Tags { get; set; }
+ public DbSet<Media> Media { get; set; }
+ public DbSet<UploadedFile> UploadedFiles { get; set; }
+
+ private IConfigService config;
+
+ public HBContext(DbContextOptions<HBContext> options, IConfigService config) : base(options) =>
+ this.config = config;
+
+ protected override void OnConfiguring(DbContextOptionsBuilder options) {
+ options.UseLazyLoadingProxies();
+
+ var path = Path.Join(config.DataPath, "HyperBooru.db");
+ options.UseSqlite($"Data Source = {config.DbPath}");
+
+ #if DEBUG
+ options.EnableSensitiveDataLogging();
+ #endif
+ }
+
+ protected override void OnModelCreating(ModelBuilder modelBuilder) {
+ modelBuilder.Entity<HBObject>().ToTable("Objects");
+ modelBuilder.Entity<TagDefinition>().ToTable("TagDefinitions");
+ modelBuilder.Entity<Tag>().ToTable("Tags");
+ modelBuilder.Entity<Media>().ToTable("Media");
+ modelBuilder.Entity<UploadedFile>().ToTable("UploadedFiles");
+
+ modelBuilder.Entity<TagDefinition>().HasData(new TagDefinition[] {
+ new() { ObjectId = -1, Source = TagSource.Internal, Name = "nsfw" },
+ new() { ObjectId = -2, Source = TagSource.Internal, Name = "ingest" }
+ });
+ }
+} \ No newline at end of file