using Microsoft.EntityFrameworkCore; namespace Timeline.Entities { public abstract class DatabaseContext : DbContext { public DatabaseContext(DbContextOptions options) : base(options) { } protected override void OnModelCreating(ModelBuilder modelBuilder) { modelBuilder.Entity().Property(e => e.Version).HasDefaultValue(0); modelBuilder.Entity().HasIndex(e => e.Username).IsUnique(); } public DbSet Users { get; set; } = default!; public DbSet UserAvatars { 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) { } } }