using Microsoft.EntityFrameworkCore; using OFBButte.Application.Database; using OFBButte.Entities; using System; using System.Collections.Generic; using System.Text; namespace OFBButte.Database { public class OFBContext : DbContext, IOFBContext { public OFBContext(DbContextOptions options) : base(options) { } public static void UseMySql(DbContextOptionsBuilder optionsBuilder, string connString) { optionsBuilder.UseMySql(connString); } public DbSet Users { get; set; } public DbSet Profiles { get; set; } public DbSet ProfileFederationCodes { get; set; } public DbSet EmailVerificationCodes { get; set; } public DbSet PasswordResetCodes { get; set; } public DbSet MissionarySupportForms { get; set; } protected override void OnModelCreating(ModelBuilder modelBuilder) { base.OnModelCreating(modelBuilder); modelBuilder.Entity(e => { e.HasKey(x => x.Id); e.HasIndex(x => x.Email); e.Property(x => x.Email).IsRequired(); e.Property(x => x.Password).IsRequired(); e.Property(x => x.CreatedDate).IsRequired(); e.HasOne(x => x.EmailVerificationCode); e.HasOne(x => x.Profile); e.HasOne(x => x.PassswordResetCode); }); modelBuilder.Entity(e => { e.HasKey(x => x.Id); }); modelBuilder.Entity(e => { e.HasKey(x => x.Id); e.HasOne(x => x.ProfileFederationCode); }); modelBuilder.Entity(e => { e.HasKey(x => x.Id); }); modelBuilder.Entity(e => { e.HasKey(x => x.Id); }); modelBuilder.Entity(e => { e.HasKey(x => x.Id); e.Ignore(x => x.HoneyPot); }); } } }