diff options
| author | ivarlovlie <git@ivarlovlie.no> | 2022-12-21 23:37:23 +0100 |
|---|---|---|
| committer | ivarlovlie <git@ivarlovlie.no> | 2022-12-21 23:37:23 +0100 |
| commit | 82ade3c31fb17b662feec59e9e654ceb66edbb7a (patch) | |
| tree | 26443c41c55d2cd2ae46fdd0d663aca84b779ffe /code/api/Database/AppDatabase.cs | |
| parent | e60703aadca7d423c0fbfb189d5ef439fc1df072 (diff) | |
| download | storage-82ade3c31fb17b662feec59e9e654ceb66edbb7a.tar.xz storage-82ade3c31fb17b662feec59e9e654ceb66edbb7a.zip | |
feat: Add initial schema and start login
Diffstat (limited to 'code/api/Database/AppDatabase.cs')
| -rw-r--r-- | code/api/Database/AppDatabase.cs | 36 |
1 files changed, 36 insertions, 0 deletions
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<AppDatabase> options) : base(options) { } + public DbSet<User> Users { get; set; } + public DbSet<File> Files { get; set; } + public DbSet<Folder> Folders { get; set; } + public DbSet<Permission> Permissions { get; set; } + public DbSet<PermissionGroup> PermissionGroups { get; set; } + + protected override void OnModelCreating(ModelBuilder modelBuilder) { + modelBuilder.Entity<User>(e => { e.ToTable("users"); }); + modelBuilder.Entity<File>(e => { + e.HasMany(c => c.Permissions); + e.HasOne(c => c.Folder); + e.ToTable("files"); + }); + modelBuilder.Entity<Folder>(e => { + e.HasMany(c => c.Files); + e.HasMany(c => c.Permissions); + e.ToTable("folders"); + }); + modelBuilder.Entity<PermissionGroup>(e => { + e.HasMany(c => c.Users); + e.ToTable("permission_groups"); + }); + modelBuilder.Entity<Permission>(e => { + e.HasOne(c => c.Group); + e.ToTable("permissions"); + }); + base.OnModelCreating(modelBuilder); + } +}
\ No newline at end of file |
