using Microsoft.EntityFrameworkCore; using Microsoft.Extensions.Configuration; using Newsbot.Collector.Domain.Consts; using Newsbot.Collector.Domain.Entities; namespace Newsbot.Collector.Database; public class DatabaseContext : DbContext { public DbSet Articles { get; set; } = null!; public DbSet DiscordQueue { get; set; } = null!; public DbSet DiscordWebhooks { get; set; } = null!; public DbSet Icons { get; set; } = null!; public DbSet Sources { get; set; } = null!; public DbSet Subscriptions { get; set; } = null!; private string ConnectionString { get; set; } public DatabaseContext(IConfiguration appsettings, string connectionString) { var connString = appsettings.GetConnectionString(ConfigConnectionStringConst.Database); ConnectionString = connString ?? ""; } public DatabaseContext(string connectionString) { ConnectionString = connectionString; } public DatabaseContext(DbContextOptions connectionString) { ConnectionString = ""; } public DatabaseContext() { ConnectionString = ""; } protected override void OnConfiguring(DbContextOptionsBuilder options) { options.UseNpgsql(ConnectionString); } public DatabaseContext(DbContextOptions options, string connectionString) : base(options) { ConnectionString = connectionString; } }