using HopFrame.Database.Models; using Microsoft.EntityFrameworkCore; namespace HopFrame.Database; /// /// This class includes the basic database structure in order for HopFrame to work /// public abstract class HopDbContextBase : DbContext { public virtual DbSet Users { get; set; } public virtual DbSet Permissions { get; set; } public virtual DbSet Tokens { get; set; } public virtual DbSet Groups { get; set; } protected override void OnModelCreating(ModelBuilder modelBuilder) { base.OnModelCreating(modelBuilder); modelBuilder.Entity() .HasMany(u => u.Tokens) .WithOne(t => t.Owner) .OnDelete(DeleteBehavior.Cascade); modelBuilder.Entity() .HasMany(u => u.Permissions) .WithOne(p => p.User) .OnDelete(DeleteBehavior.Cascade); modelBuilder.Entity() .HasMany(g => g.Permissions) .WithOne(p => p.Group) .OnDelete(DeleteBehavior.Cascade); modelBuilder.Entity() .HasMany(t => t.Permissions) .WithOne(t => t.Token) .OnDelete(DeleteBehavior.Cascade); } }