using Microsoft.EntityFrameworkCore; namespace Timeline.Entities { public abstract class DatabaseContext : DbContext { public DatabaseContext(DbContextOptions options) : base(options) { } [System.Diagnostics.CodeAnalysis.SuppressMessage("Design", "CA1062:Validate arguments of public methods")] protected override void OnModelCreating(ModelBuilder modelBuilder) { modelBuilder.Entity().Property(e => e.Version).HasDefaultValue(0); modelBuilder.Entity().HasIndex(e => e.Name).IsUnique(); } public DbSet Users { get; set; } = default!; public DbSet UserAvatars { get; set; } = default!; public DbSet UserDetails { get; set; } = default!; public DbSet Timelines { get; set; } = default!; public DbSet TimelinePosts { get; set; } = default!; public DbSet TimelineMembers { get; set; } = default!; } public class ProductionDatabaseContext : DatabaseContext { public ProductionDatabaseContext(DbContextOptions options) : base(options) { } } public class DevelopmentDatabaseContext : DatabaseContext { public DevelopmentDatabaseContext(DbContextOptions options) : base(options) { } } }