using Microsoft.EntityFrameworkCore;
using Elwig.Models;

namespace Elwig.Helpers {
    public class AppDbContext : DbContext {

        public DbSet<Country> Countries { get; set; }
        public DbSet<Member> Members { get; set; }
        public DbSet<BillingAddress> BillingAddresses { get; set; }
        public DbSet<AT_Gem> Gemeinden { get; set; }
        public DbSet<AT_Kg> Katastralgemeinden { get; set; }
        public DbSet<AT_Ort> Orte { get; set; }
        public DbSet<AT_PlzDest> Postleitzahlen { get; set; }
        public DbSet<PostalDest> PostalDestinations { get; set; }
        public DbSet<Branch> Branches { get; set; }
        public DbSet<WbKg> WbKgs { get; set; }
        public DbSet<WbRd> WbRde { get; set; }
        public DbSet<AreaCommitment> AreaCommitments { get; set; }
        public DbSet<Contract> Contracts { get; set; }
        public DbSet<WineAttr> WineAttributes { get; set; }
        public DbSet<WineCult> WineCultivations { get; set; }
        public DbSet<WineQual> WineQualities { get; set; }
        public DbSet<WineVar> WineVarieties { get; set; }

        protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder) {
            optionsBuilder.UseSqlite($"Data Source=\"{App.Config.DatabasePath}\"; Foreign Keys=True; Mode=ReadWrite; Cache=Default");
            optionsBuilder.UseLazyLoadingProxies();
            base.OnConfiguring(optionsBuilder);
        }
    }
}