using Microsoft.EntityFrameworkCore; using Microsoft.Extensions.Options; using Moonlight.Api.Configuration; using Moonlight.Api.Database.Entities; namespace Moonlight.Api.Database; public class DataContext : DbContext { public DbSet Users { get; set; } public DbSet SettingsOptions { get; set; } public DbSet Roles { get; set; } public DbSet RoleMembers { get; set; } private readonly IOptions Options; public DataContext(IOptions options) { Options = options; } protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder) { if (optionsBuilder.IsConfigured) return; optionsBuilder.UseNpgsql( $"Host={Options.Value.Host};" + $"Port={Options.Value.Port};" + $"Username={Options.Value.Username};" + $"Password={Options.Value.Password};" + $"Database={Options.Value.Database}" ); } protected override void OnModelCreating(ModelBuilder modelBuilder) { modelBuilder.HasDefaultSchema("core"); base.OnModelCreating(modelBuilder); } }