using System.Reflection; using Microsoft.EntityFrameworkCore; using WatchIt.Database.Model.Accounts; using WatchIt.Database.Model.Genders; using WatchIt.Database.Model.Genres; using WatchIt.Database.Model.Media; using WatchIt.Database.Model.People; using WatchIt.Database.Model.Photos; using WatchIt.Database.Model.Roles; namespace WatchIt.Database; public class DatabaseContext : DbContext { #region CONSTRUCTORS public DatabaseContext() { } public DatabaseContext(DbContextOptions options) : base(options) { } #endregion #region PROPERTIES // Media public virtual DbSet Media { get; set; } public virtual DbSet MediumGenres { get; set; } public virtual DbSet MediumRatings { get; set; } public virtual DbSet MediumViewCounts { get; set; } public virtual DbSet MediumPictures { get; set; } // People public virtual DbSet People { get; set; } public virtual DbSet PersonViewCounts { get; set; } public virtual DbSet PersonPictures { get; set; } // Roles public virtual DbSet Roles { get; set; } public virtual DbSet RoleActorTypes { get; set; } public virtual DbSet RoleCreatorTypes { get; set; } public virtual DbSet RoleRatings { get; set; } // Accounts public virtual DbSet Accounts { get; set; } public virtual DbSet AccountFollows { get; set; } public virtual DbSet AccountProfilePictures { get; set; } public virtual DbSet AccountBackgroundPictures { get; set; } public virtual DbSet AccountRefreshTokens { get; set; } // Photos public virtual DbSet Photos { get; set; } public virtual DbSet PhotoBackgrounds { get; set; } // Genders public virtual DbSet Genders { get; set; } // Genres public virtual DbSet Genres { get; set; } #endregion #region PROTECTED METHODS protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder) { optionsBuilder.UseNpgsql("name=Database"); } protected override void OnModelCreating(ModelBuilder modelBuilder) { modelBuilder.ApplyConfigurationsFromAssembly(Assembly.GetAssembly(typeof(Account))!); } #endregion }