From 82ade3c31fb17b662feec59e9e654ceb66edbb7a Mon Sep 17 00:00:00 2001 From: ivarlovlie Date: Wed, 21 Dec 2022 23:37:23 +0100 Subject: feat: Add initial schema and start login --- code/api/Database/AppDatabase.cs | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 code/api/Database/AppDatabase.cs (limited to 'code/api/Database/AppDatabase.cs') diff --git a/code/api/Database/AppDatabase.cs b/code/api/Database/AppDatabase.cs new file mode 100644 index 0000000..722a3e0 --- /dev/null +++ b/code/api/Database/AppDatabase.cs @@ -0,0 +1,36 @@ +using File = I2R.Storage.Api.Database.Models.File; + +namespace I2R.Storage.Api.Database; + +public class AppDatabase : DbContext +{ + public AppDatabase(DbContextOptions options) : base(options) { } + public DbSet Users { get; set; } + public DbSet Files { get; set; } + public DbSet Folders { get; set; } + public DbSet Permissions { get; set; } + public DbSet PermissionGroups { get; set; } + + protected override void OnModelCreating(ModelBuilder modelBuilder) { + modelBuilder.Entity(e => { e.ToTable("users"); }); + modelBuilder.Entity(e => { + e.HasMany(c => c.Permissions); + e.HasOne(c => c.Folder); + e.ToTable("files"); + }); + modelBuilder.Entity(e => { + e.HasMany(c => c.Files); + e.HasMany(c => c.Permissions); + e.ToTable("folders"); + }); + modelBuilder.Entity(e => { + e.HasMany(c => c.Users); + e.ToTable("permission_groups"); + }); + modelBuilder.Entity(e => { + e.HasOne(c => c.Group); + e.ToTable("permissions"); + }); + base.OnModelCreating(modelBuilder); + } +} \ No newline at end of file -- cgit v1.3