Files
Operation-Blue-Laminate-v2/BlueLaminate/BlueLaminate.EFCore/Data/SkinTrackerDbContext.cs
2026-05-29 14:00:58 -05:00

51 lines
2.1 KiB
C#

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<SkinTrackerDbContext> options)
: base(options)
{
}
public DbSet<Weapon> Weapons => Set<Weapon>();
public DbSet<ScrapeRun> ScrapeRuns => Set<ScrapeRun>();
public DbSet<Skin> Skins => Set<Skin>();
public DbSet<SkinCondition> SkinConditions => Set<SkinCondition>();
public DbSet<SteamUser> SteamUsers => Set<SteamUser>();
public DbSet<SkinInstance> SkinInstances => Set<SkinInstance>();
public DbSet<InventoryItem> InventoryItems => Set<InventoryItem>();
public DbSet<Trade> Trades => Set<Trade>();
public DbSet<TradeItem> TradeItems => Set<TradeItem>();
public DbSet<PriceHistory> PriceHistories => Set<PriceHistory>();
/// <summary>The PostgreSQL schema that owns all of this context's tables.</summary>
public const string Schema = "skintracker";
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder.HasDefaultSchema(Schema);
modelBuilder.ApplyConfiguration(new WeaponConfiguration());
modelBuilder.ApplyConfiguration(new ScrapeRunConfiguration());
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());
}
}