using BlueLaminate.EFCore.Configurations; using BlueLaminate.EFCore.Entities; using Microsoft.EntityFrameworkCore; namespace BlueLaminate.EFCore.Data; public class SkinTrackerDbContext : DbContext { static SkinTrackerDbContext() { // Store and read all timestamps as UTC (timestamptz). Required so that // DateTimeOffset properties round-trip correctly with Npgsql. AppContext.SetSwitch("Npgsql.EnableLegacyTimestampBehavior", false); } public SkinTrackerDbContext(DbContextOptions options) : base(options) { } public DbSet Weapons => Set(); public DbSet Skins => Set(); public DbSet SkinConditions => Set(); public DbSet SteamUsers => Set(); public DbSet SkinInstances => Set(); public DbSet InventoryItems => Set(); public DbSet Trades => Set(); public DbSet TradeItems => Set(); public DbSet PriceHistories => Set(); protected override void OnModelCreating(ModelBuilder modelBuilder) { modelBuilder.ApplyConfiguration(new SkinConfiguration()); modelBuilder.ApplyConfiguration(new SkinConditionConfiguration()); modelBuilder.ApplyConfiguration(new SteamUserConfiguration()); modelBuilder.ApplyConfiguration(new SkinInstanceConfiguration()); modelBuilder.ApplyConfiguration(new InventoryItemConfiguration()); modelBuilder.ApplyConfiguration(new TradeConfiguration()); modelBuilder.ApplyConfiguration(new TradeItemConfiguration()); modelBuilder.ApplyConfiguration(new PriceHistoryConfiguration()); } }