using ComputerHardwareStoreDatabaseImplement.Models;
using Microsoft.EntityFrameworkCore;

namespace ComputerHardwareStoreDatabaseImplement
{
    public class ComputerHardwareStoreDBContext : DbContext
    {
        protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
        {
            if (optionsBuilder.IsConfigured == false)
            {
                //optionsBuilder.UseNpgsql(@"Host=localhost;Database=ProductBar_db;Username=postgres;Password=postgres"); // не надо >:
                /*
                 * в program добавить:
                 * // получаем строку подключения из файла конфигурации
                 * string connection = builder.Configuration.GetConnectionString("DefaultConnection");
                 * 
                 * // добавляем контекст ApplicationContext в качестве сервиса в приложение
                 * builder.Services.AddDbContext<ApplicationContext>(options => options.UseSqlServer(connection));
                 * 
                 * в appsettings:
                 * "ConnectionStrings": {
                 *      "DefaultConnection": "Host=localhost;Database=ProductBar_db;Username=compstore;Password=compstore"
                 * },
                */
            }
            base.OnConfiguring(optionsBuilder);
            AppContext.SetSwitch("Npgsql.EnableLegacyTimestampBehavior", true);
            AppContext.SetSwitch("Npgsql.DisableDateTimeInfinityConversions", true);
        }
        public virtual DbSet<Component> Components { set; get; }
        public virtual DbSet<Product> Products { set; get; }
        public virtual DbSet<ProductComponent> ProductComponents { set; get; }
        public virtual DbSet<OrderProduct> OrderProducts { set; get; }

        public virtual DbSet<StoreKeeper> StoreKeepers { set; get; }
        public virtual DbSet<Build> Builds { set; get; }
    }
}