using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore.Design; using Microsoft.Extensions.Logging; /** * @overview Life of German Reallife - DatabaseContext.cs * @author VegaZ * @copyright (c) 2008 - 2018 Life of German */ namespace ReallifeGamemode.Database.Models { public partial class DatabaseContext : DbContext { public static ILoggerFactory LoggerFactory { get; set; } private readonly bool useLoggerFactory = false; public DatabaseContext(bool useLoggerFactory = false) { this.useLoggerFactory = useLoggerFactory; } protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder) { base.OnConfiguring(optionsBuilder); if (useLoggerFactory && LoggerFactory != null) { optionsBuilder.UseLoggerFactory(LoggerFactory); } optionsBuilder.UseMySql("Host=localhost;Port=3306;Database=gtav-devdb;Username=gtav-dev;Password=Test123"); } protected override void OnModelCreating(ModelBuilder modelBuilder) { base.OnModelCreating(modelBuilder); modelBuilder.Entity() .HasIndex(b => b.BusinessId) .IsUnique(true); modelBuilder.Entity() .HasIndex(u => u.BusinessId) .IsUnique(true); modelBuilder.Entity() .Property(sv => sv.Active) .HasDefaultValue(true); modelBuilder.Entity() .HasIndex(vM => new { vM.ServerVehicleId, vM.Slot }).IsUnique(); } //User public DbSet Bans { get; set; } public DbSet Characters { get; set; } public DbSet CharacterClothes { get; set; } public DbSet DutyClothes { get; set; } public DbSet FactionWeapons { get; set; } public DbSet ClothCombinations { get; set; } public DbSet Users { get; set; } public DbSet UserVehicles { get; set; } public DbSet UserBankAccounts { get; set; } //Inventar public DbSet UserItems { get; set; } //Faction public DbSet Factions { get; set; } public DbSet FactionBankAccounts { get; set; } public DbSet FactionRanks { get; set; } public DbSet FactionVehicles { get; set; } //Shops //Logs //public DbSet BanLogs { get; set; } public DbSet BankAccountTransactionLogs { get; set; } public DbSet DeathLogs { get; set; } //Saves public DbSet ATMs { get; set; } public DbSet Blips { get; set; } public DbSet Doors { get; set; } public DbSet GotoPoints { get; set; } public DbSet Markers { get; set; } public DbSet Peds { get; set; } public DbSet Pickups { get; set; } public DbSet TextLabels { get; set; } public DbSet Vehicles { get; set; } public DbSet ShopVehicles { get; set; } // Business public DbSet BusinessBankAccounts { get; set; } public DbSet BusinessData { get; set; } // Control Panel public DbSet News { get; set; } public DbSet Locations { get; set; } // Server Vehicles public DbSet ServerVehicles { get; set; } public DbSet VehicleMods { get; set; } public DbSet VehicleItems { get; set; } // Whitelist public DbSet WhitelistEntries { get; set; } // Interiors public DbSet Interiors { get; set; } // Tuning Garages public DbSet TuningGarages { get; set; } // Gruppen public DbSet Groups { get; set; } public DbSet GroupBankAccounts { get; set; } public DbSet GroupVehicles { get; set; } // Jobs public DbSet JobVehicles { get; set; } // Houses public DbSet Houses { get; set; } public DbSet HouseRentals { get; set; } public DbSet HouseBankAccounts { get; set; } // Bus Routes public DbSet BusRoutes { get; set; } public DbSet BusRoutesPoints { get; set; } //Driving/Bike/Flight School public DbSet SchoolVehicles { get; set; } //Gangwar public DbSet Turfs { get; set; } //ClothesShop public DbSet ShopClothes { get; set; } //ItemShop public DbSet ShopItems { get; set; } } public class DesignTimeDbContextFactory : IDesignTimeDbContextFactory { public DatabaseContext CreateDbContext(string[] args) { return new DatabaseContext(); } } }