using ComputerHardwareStoreDatabaseImplement.Models;
using Microsoft.EntityFrameworkCore;

namespace ComputerHardwareStoreDatabaseImplement
{
    public class ComputerHardwareStoreDBContext : DbContext
    {
        protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
        {
            /*
                * в 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<StoreKeeper> StoreKeepers { set; get; }
        public virtual DbSet<Build> Builds { set; get; }
        public virtual DbSet<Order> Orders { set; get; }
        public virtual DbSet<OrderProduct> OrderProducts { set; get; }
        public virtual DbSet<BuildComponent> BuildComponents { set; get; }
        public virtual DbSet<Comment> Comments { set; get; }
        public virtual DbSet<Purchase> Purchases { set; get; }
        public virtual DbSet<PurchaseBuild> PurchaseBuilds { set; get; }
        public virtual DbSet<PurchaseProduct> PurchaseProducts { set; get; }
        public virtual DbSet<Vendor> Vendors { set; get; }
    }
}