67 lines
3.2 KiB
C#
67 lines
3.2 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<Collection> Collections => Set<Collection>();
|
|
public DbSet<Skin> Skins => Set<Skin>();
|
|
public DbSet<SkinCondition> SkinConditions => Set<SkinCondition>();
|
|
public DbSet<SkinSweep> SkinSweeps => Set<SkinSweep>();
|
|
public DbSet<SkinConditionSweep> SkinConditionSweeps => Set<SkinConditionSweep>();
|
|
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>();
|
|
public DbSet<Listing> Listings => Set<Listing>();
|
|
public DbSet<CsMoneyListing> CsMoneyListings => Set<CsMoneyListing>();
|
|
public DbSet<SkinLandListing> SkinLandListings => Set<SkinLandListing>();
|
|
|
|
/// <summary>Read-only cross-market view UNIONing the per-market listing tables.</summary>
|
|
public DbSet<MarketListing> MarketListings => Set<MarketListing>();
|
|
|
|
/// <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 CollectionConfiguration());
|
|
modelBuilder.ApplyConfiguration(new SkinConfiguration());
|
|
modelBuilder.ApplyConfiguration(new SkinConditionConfiguration());
|
|
modelBuilder.ApplyConfiguration(new SkinSweepConfiguration());
|
|
modelBuilder.ApplyConfiguration(new SkinConditionSweepConfiguration());
|
|
modelBuilder.ApplyConfiguration(new SteamUserConfiguration());
|
|
modelBuilder.ApplyConfiguration(new SkinInstanceConfiguration());
|
|
modelBuilder.ApplyConfiguration(new InventoryItemConfiguration());
|
|
modelBuilder.ApplyConfiguration(new TradeConfiguration());
|
|
modelBuilder.ApplyConfiguration(new TradeItemConfiguration());
|
|
modelBuilder.ApplyConfiguration(new PriceHistoryConfiguration());
|
|
modelBuilder.ApplyConfiguration(new ListingConfiguration());
|
|
modelBuilder.ApplyConfiguration(new CsMoneyListingConfiguration());
|
|
modelBuilder.ApplyConfiguration(new SkinLandListingConfiguration());
|
|
modelBuilder.ApplyConfiguration(new MarketListingConfiguration());
|
|
}
|
|
}
|