// using System; using BlueLaminate.EFCore.Data; using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore.Infrastructure; using Microsoft.EntityFrameworkCore.Migrations; using Microsoft.EntityFrameworkCore.Storage.ValueConversion; using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata; #nullable disable namespace BlueLaminate.EFCore.Migrations { [DbContext(typeof(SkinTrackerDbContext))] [Migration("20260531203937_AddPerSiteSweepCheckpoints")] partial class AddPerSiteSweepCheckpoints { /// protected override void BuildTargetModel(ModelBuilder modelBuilder) { #pragma warning disable 612, 618 modelBuilder .HasDefaultSchema("skintracker") .HasAnnotation("ProductVersion", "10.0.8") .HasAnnotation("Relational:MaxIdentifierLength", 63); NpgsqlModelBuilderExtensions.UseIdentityByDefaultColumns(modelBuilder); modelBuilder.Entity("BlueLaminate.EFCore.Entities.Collection", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("integer") .HasColumnName("id"); NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); b.Property("Name") .IsRequired() .HasColumnType("text") .HasColumnName("name"); b.Property("Slug") .IsRequired() .HasColumnType("text") .HasColumnName("slug"); b.Property("Type") .IsRequired() .HasColumnType("text") .HasColumnName("type"); b.HasKey("Id") .HasName("pk_collections"); b.HasIndex("Slug") .IsUnique() .HasDatabaseName("ix_collections_slug"); b.ToTable("collections", "skintracker"); }); modelBuilder.Entity("BlueLaminate.EFCore.Entities.CsMoneyListing", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("integer") .HasColumnName("id"); NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); b.Property("AssetId") .HasColumnType("text") .HasColumnName("asset_id"); b.Property("ComputedPrice") .HasPrecision(18, 2) .HasColumnType("numeric(18,2)") .HasColumnName("computed_price"); b.Property("ConditionId") .HasColumnType("integer") .HasColumnName("condition_id"); b.Property("Currency") .IsRequired() .HasColumnType("text") .HasColumnName("currency"); b.Property("FirstSeenAt") .HasColumnType("timestamp with time zone") .HasColumnName("first_seen_at"); b.Property("FloatValue") .HasColumnType("numeric(20,18)") .HasColumnName("float_value"); b.Property("InspectLink") .HasColumnType("text") .HasColumnName("inspect_link"); b.Property("IsSouvenir") .HasColumnType("boolean") .HasColumnName("is_souvenir"); b.Property("IsStatTrak") .HasColumnType("boolean") .HasColumnName("is_stat_trak"); b.Property("LastSeenAt") .HasColumnType("timestamp with time zone") .HasColumnName("last_seen_at"); b.Property("MarketHashName") .IsRequired() .HasColumnType("text") .HasColumnName("market_hash_name"); b.Property("PaintSeed") .HasColumnType("integer") .HasColumnName("paint_seed"); b.Property("Phase") .HasColumnType("text") .HasColumnName("phase"); b.Property("Price") .HasPrecision(18, 2) .HasColumnType("numeric(18,2)") .HasColumnName("price"); b.Property("PriceBeforeDiscount") .HasPrecision(18, 2) .HasColumnType("numeric(18,2)") .HasColumnName("price_before_discount"); b.Property("Quality") .HasColumnType("text") .HasColumnName("quality"); b.Property("RemovedAt") .HasColumnType("timestamp with time zone") .HasColumnName("removed_at"); b.Property("SellOrderId") .HasColumnType("bigint") .HasColumnName("sell_order_id"); b.Property("SkinId") .HasColumnType("integer") .HasColumnName("skin_id"); b.Property("SkinInstanceId") .HasColumnType("integer") .HasColumnName("skin_instance_id"); b.Property("Status") .IsRequired() .HasColumnType("text") .HasColumnName("status"); b.Property("StickerCount") .HasColumnType("integer") .HasColumnName("sticker_count"); b.HasKey("Id") .HasName("pk_cs_money_listings"); b.HasIndex("AssetId") .HasDatabaseName("ix_cs_money_listings_asset_id"); b.HasIndex("ConditionId") .HasDatabaseName("ix_cs_money_listings_condition_id"); b.HasIndex("SellOrderId") .IsUnique() .HasDatabaseName("ix_cs_money_listings_sell_order_id"); b.HasIndex("SkinInstanceId") .HasDatabaseName("ix_cs_money_listings_skin_instance_id"); b.HasIndex("Status") .HasDatabaseName("ix_cs_money_listings_status"); b.HasIndex("SkinId", "ConditionId") .HasDatabaseName("ix_cs_money_listings_skin_id_condition_id"); b.ToTable("cs_money_listings", "skintracker"); }); modelBuilder.Entity("BlueLaminate.EFCore.Entities.InventoryItem", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("integer") .HasColumnName("id"); NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); b.Property("AcquiredAt") .HasColumnType("timestamp with time zone") .HasColumnName("acquired_at"); b.Property("AssetId") .IsRequired() .HasColumnType("text") .HasColumnName("asset_id"); b.Property("SkinInstanceId") .HasColumnType("integer") .HasColumnName("skin_instance_id"); b.Property("UserId") .HasColumnType("integer") .HasColumnName("user_id"); b.HasKey("Id") .HasName("pk_inventory_items"); b.HasIndex("AssetId") .HasDatabaseName("ix_inventory_items_asset_id"); b.HasIndex("SkinInstanceId") .HasDatabaseName("ix_inventory_items_skin_instance_id"); b.HasIndex("UserId") .HasDatabaseName("ix_inventory_items_user_id"); b.ToTable("inventory_items", "skintracker"); }); modelBuilder.Entity("BlueLaminate.EFCore.Entities.Listing", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("integer") .HasColumnName("id"); NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); b.Property("AssetId") .HasColumnType("text") .HasColumnName("asset_id"); b.Property("CsFloatListingId") .IsRequired() .HasColumnType("text") .HasColumnName("cs_float_listing_id"); b.Property("DefIndex") .HasColumnType("integer") .HasColumnName("def_index"); b.Property("FirstSeenAt") .HasColumnType("timestamp with time zone") .HasColumnName("first_seen_at"); b.Property("FloatValue") .HasColumnType("numeric(20,18)") .HasColumnName("float_value"); b.Property("InspectLink") .HasColumnType("text") .HasColumnName("inspect_link"); b.Property("IsSouvenir") .HasColumnType("boolean") .HasColumnName("is_souvenir"); b.Property("IsStatTrak") .HasColumnType("boolean") .HasColumnName("is_stat_trak"); b.Property("LastSeenAt") .HasColumnType("timestamp with time zone") .HasColumnName("last_seen_at"); b.Property("ListedAt") .HasColumnType("timestamp with time zone") .HasColumnName("listed_at"); b.Property("MarketHashName") .IsRequired() .HasColumnType("text") .HasColumnName("market_hash_name"); b.Property("PaintIndex") .HasColumnType("integer") .HasColumnName("paint_index"); b.Property("PaintSeed") .HasColumnType("integer") .HasColumnName("paint_seed"); b.Property("Price") .HasPrecision(18, 2) .HasColumnType("numeric(18,2)") .HasColumnName("price"); b.Property("RemovedAt") .HasColumnType("timestamp with time zone") .HasColumnName("removed_at"); b.Property("SellerSteamId") .HasColumnType("text") .HasColumnName("seller_steam_id"); b.Property("SkinId") .HasColumnType("integer") .HasColumnName("skin_id"); b.Property("SkinInstanceId") .HasColumnType("integer") .HasColumnName("skin_instance_id"); b.Property("Status") .IsRequired() .HasColumnType("text") .HasColumnName("status"); b.Property("StickerCount") .HasColumnType("integer") .HasColumnName("sticker_count"); b.Property("Type") .IsRequired() .HasColumnType("text") .HasColumnName("type"); b.Property("WearName") .HasColumnType("text") .HasColumnName("wear_name"); b.HasKey("Id") .HasName("pk_listings"); b.HasIndex("AssetId") .HasDatabaseName("ix_listings_asset_id"); b.HasIndex("CsFloatListingId") .IsUnique() .HasDatabaseName("ix_listings_cs_float_listing_id"); b.HasIndex("SkinId") .HasDatabaseName("ix_listings_skin_id"); b.HasIndex("SkinInstanceId") .HasDatabaseName("ix_listings_skin_instance_id"); b.HasIndex("Status") .HasDatabaseName("ix_listings_status"); b.HasIndex("DefIndex", "PaintIndex") .HasDatabaseName("ix_listings_def_index_paint_index"); b.ToTable("listings", "skintracker"); }); modelBuilder.Entity("BlueLaminate.EFCore.Entities.MarketListing", b => { b.Property("AssetId") .HasColumnType("text") .HasColumnName("asset_id"); b.Property("ConditionId") .HasColumnType("integer") .HasColumnName("condition_id"); b.Property("Currency") .IsRequired() .HasColumnType("text") .HasColumnName("currency"); b.Property("ExternalId") .IsRequired() .HasColumnType("text") .HasColumnName("external_id"); b.Property("FirstSeenAt") .HasColumnType("timestamp with time zone") .HasColumnName("first_seen_at"); b.Property("FloatValue") .HasColumnType("numeric") .HasColumnName("float_value"); b.Property("InspectLink") .HasColumnType("text") .HasColumnName("inspect_link"); b.Property("IsSouvenir") .HasColumnType("boolean") .HasColumnName("is_souvenir"); b.Property("IsStatTrak") .HasColumnType("boolean") .HasColumnName("is_stat_trak"); b.Property("LastSeenAt") .HasColumnType("timestamp with time zone") .HasColumnName("last_seen_at"); b.Property("MarketHashName") .IsRequired() .HasColumnType("text") .HasColumnName("market_hash_name"); b.Property("Marketplace") .IsRequired() .HasColumnType("text") .HasColumnName("marketplace"); b.Property("PaintSeed") .HasColumnType("integer") .HasColumnName("paint_seed"); b.Property("Price") .HasColumnType("numeric") .HasColumnName("price"); b.Property("RemovedAt") .HasColumnType("timestamp with time zone") .HasColumnName("removed_at"); b.Property("SkinId") .HasColumnType("integer") .HasColumnName("skin_id"); b.Property("SkinInstanceId") .HasColumnType("integer") .HasColumnName("skin_instance_id"); b.Property("Status") .IsRequired() .HasColumnType("text") .HasColumnName("status"); b.Property("StickerCount") .HasColumnType("integer") .HasColumnName("sticker_count"); b.Property("Wear") .HasColumnType("text") .HasColumnName("wear"); b.ToTable((string)null); b.ToView("market_listings", "skintracker"); }); modelBuilder.Entity("BlueLaminate.EFCore.Entities.PriceHistory", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("integer") .HasColumnName("id"); NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); b.Property("ConditionId") .HasColumnType("integer") .HasColumnName("condition_id"); b.Property("Currency") .IsRequired() .HasColumnType("text") .HasColumnName("currency"); b.Property("Price") .HasPrecision(18, 2) .HasColumnType("numeric(18,2)") .HasColumnName("price"); b.Property("RecordedAt") .HasColumnType("timestamp with time zone") .HasColumnName("recorded_at"); b.Property("SkinId") .HasColumnType("integer") .HasColumnName("skin_id"); b.Property("Source") .IsRequired() .HasColumnType("text") .HasColumnName("source"); b.HasKey("Id") .HasName("pk_price_histories"); b.HasIndex("ConditionId") .HasDatabaseName("ix_price_histories_condition_id"); b.HasIndex("SkinId", "ConditionId", "RecordedAt") .HasDatabaseName("ix_price_histories_skin_id_condition_id_recorded_at"); b.ToTable("price_histories", "skintracker"); }); modelBuilder.Entity("BlueLaminate.EFCore.Entities.ScrapeRun", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("integer") .HasColumnName("id"); NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); b.Property("ItemCount") .HasColumnType("integer") .HasColumnName("item_count"); b.Property("RanAt") .HasColumnType("timestamp with time zone") .HasColumnName("ran_at"); b.Property("Source") .IsRequired() .HasColumnType("text") .HasColumnName("source"); b.HasKey("Id") .HasName("pk_scrape_runs"); b.HasIndex("Source", "RanAt") .HasDatabaseName("ix_scrape_runs_source_ran_at"); b.ToTable("scrape_runs", "skintracker"); }); modelBuilder.Entity("BlueLaminate.EFCore.Entities.Skin", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("integer") .HasColumnName("id"); NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); b.Property("DefIndex") .HasColumnType("integer") .HasColumnName("def_index"); b.Property("Description") .HasColumnType("text") .HasColumnName("description"); b.Property("FloatMax") .HasColumnType("numeric(10,9)") .HasColumnName("float_max"); b.Property("FloatMin") .HasColumnType("numeric(10,9)") .HasColumnName("float_min"); b.Property("ImageUrl") .HasColumnType("text") .HasColumnName("image_url"); b.Property("Name") .IsRequired() .HasColumnType("text") .HasColumnName("name"); b.Property("PaintIndex") .HasColumnType("integer") .HasColumnName("paint_index"); b.Property("Rarity") .IsRequired() .HasColumnType("text") .HasColumnName("rarity"); b.Property("Slug") .IsRequired() .HasColumnType("text") .HasColumnName("slug"); b.Property("SouvenirAvailable") .HasColumnType("boolean") .HasColumnName("souvenir_available"); b.Property("StatTrakAvailable") .HasColumnType("boolean") .HasColumnName("stat_trak_available"); b.Property("TrueFloat") .ValueGeneratedOnAddOrUpdate() .HasColumnType("boolean") .HasColumnName("true_float") .HasComputedColumnSql("float_min = 0.0 AND float_max = 1.0", true); b.Property("WeaponId") .HasColumnType("integer") .HasColumnName("weapon_id"); b.HasKey("Id") .HasName("pk_skins"); b.HasIndex("Slug") .IsUnique() .HasDatabaseName("ix_skins_slug"); b.HasIndex("TrueFloat") .HasDatabaseName("ix_skins_true_float"); b.HasIndex("WeaponId") .HasDatabaseName("ix_skins_weapon_id"); b.HasIndex("DefIndex", "PaintIndex") .IsUnique() .HasDatabaseName("ix_skins_def_index_paint_index") .HasFilter("def_index IS NOT NULL AND paint_index IS NOT NULL"); b.ToTable("skins", "skintracker"); }); modelBuilder.Entity("BlueLaminate.EFCore.Entities.SkinCondition", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("integer") .HasColumnName("id"); NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); b.Property("Condition") .IsRequired() .HasColumnType("text") .HasColumnName("condition"); b.Property("MaxFloat") .HasColumnType("numeric(10,9)") .HasColumnName("max_float"); b.Property("MinFloat") .HasColumnType("numeric(10,9)") .HasColumnName("min_float"); b.Property("SkinId") .HasColumnType("integer") .HasColumnName("skin_id"); b.HasKey("Id") .HasName("pk_skin_conditions"); b.HasIndex("SkinId") .HasDatabaseName("ix_skin_conditions_skin_id"); b.ToTable("skin_conditions", "skintracker"); }); modelBuilder.Entity("BlueLaminate.EFCore.Entities.SkinConditionSweep", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("integer") .HasColumnName("id"); NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); b.Property("SkinConditionId") .HasColumnType("integer") .HasColumnName("skin_condition_id"); b.Property("Source") .IsRequired() .HasColumnType("text") .HasColumnName("source"); b.Property("SweptAt") .HasColumnType("timestamp with time zone") .HasColumnName("swept_at"); b.HasKey("Id") .HasName("pk_skin_condition_sweeps"); b.HasIndex("SkinConditionId", "Source") .IsUnique() .HasDatabaseName("ix_skin_condition_sweeps_skin_condition_id_source"); b.HasIndex("Source", "SweptAt") .HasDatabaseName("ix_skin_condition_sweeps_source_swept_at"); b.ToTable("skin_condition_sweeps", "skintracker"); }); modelBuilder.Entity("BlueLaminate.EFCore.Entities.SkinInstance", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("integer") .HasColumnName("id"); NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); b.Property("ConditionId") .HasColumnType("integer") .HasColumnName("condition_id"); b.Property("DupeFirstSeenAt") .HasColumnType("timestamp with time zone") .HasColumnName("dupe_first_seen_at"); b.Property("FirstSeenAt") .HasColumnType("timestamp with time zone") .HasColumnName("first_seen_at"); b.Property("FloatValue") .HasColumnType("numeric(20,18)") .HasColumnName("float_value"); b.Property("LastSeenAt") .HasColumnType("timestamp with time zone") .HasColumnName("last_seen_at"); b.Property("PaintSeed") .IsRequired() .HasColumnType("text") .HasColumnName("paint_seed"); b.Property("SkinId") .HasColumnType("integer") .HasColumnName("skin_id"); b.Property("Souvenir") .HasColumnType("boolean") .HasColumnName("souvenir"); b.Property("StatTrak") .HasColumnType("boolean") .HasColumnName("stat_trak"); b.Property("SuspectedDupe") .HasColumnType("boolean") .HasColumnName("suspected_dupe"); b.HasKey("Id") .HasName("pk_skin_instances"); b.HasIndex("ConditionId") .HasDatabaseName("ix_skin_instances_condition_id"); b.HasIndex("SuspectedDupe") .HasDatabaseName("ix_skin_instances_suspected_dupe"); b.HasIndex("SkinId", "FloatValue", "PaintSeed", "StatTrak", "Souvenir") .HasDatabaseName("ix_skin_instances_skin_id_float_value_paint_seed_stat_trak_sou"); b.ToTable("skin_instances", "skintracker"); }); modelBuilder.Entity("BlueLaminate.EFCore.Entities.SkinSweep", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("integer") .HasColumnName("id"); NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); b.Property("SkinId") .HasColumnType("integer") .HasColumnName("skin_id"); b.Property("Source") .IsRequired() .HasColumnType("text") .HasColumnName("source"); b.Property("SweptAt") .HasColumnType("timestamp with time zone") .HasColumnName("swept_at"); b.HasKey("Id") .HasName("pk_skin_sweeps"); b.HasIndex("SkinId", "Source") .IsUnique() .HasDatabaseName("ix_skin_sweeps_skin_id_source"); b.HasIndex("Source", "SweptAt") .HasDatabaseName("ix_skin_sweeps_source_swept_at"); b.ToTable("skin_sweeps", "skintracker"); }); modelBuilder.Entity("BlueLaminate.EFCore.Entities.SteamUser", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("integer") .HasColumnName("id"); NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); b.Property("DisplayName") .HasColumnType("text") .HasColumnName("display_name"); b.Property("LastSyncedAt") .HasColumnType("timestamp with time zone") .HasColumnName("last_synced_at"); b.Property("SteamId") .IsRequired() .HasColumnType("text") .HasColumnName("steam_id"); b.HasKey("Id") .HasName("pk_steam_users"); b.HasIndex("SteamId") .IsUnique() .HasDatabaseName("ix_steam_users_steam_id"); b.ToTable("steam_users", "skintracker"); }); modelBuilder.Entity("BlueLaminate.EFCore.Entities.Trade", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("integer") .HasColumnName("id"); NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); b.Property("FromUserId") .HasColumnType("integer") .HasColumnName("from_user_id"); b.Property("SteamTradeId") .HasColumnType("text") .HasColumnName("steam_trade_id"); b.Property("ToUserId") .HasColumnType("integer") .HasColumnName("to_user_id"); b.Property("TradedAt") .HasColumnType("timestamp with time zone") .HasColumnName("traded_at"); b.HasKey("Id") .HasName("pk_trades"); b.HasIndex("FromUserId") .HasDatabaseName("ix_trades_from_user_id"); b.HasIndex("ToUserId") .HasDatabaseName("ix_trades_to_user_id"); b.ToTable("trades", "skintracker"); }); modelBuilder.Entity("BlueLaminate.EFCore.Entities.TradeItem", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("integer") .HasColumnName("id"); NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); b.Property("InventoryItemId") .HasColumnType("integer") .HasColumnName("inventory_item_id"); b.Property("TradeId") .HasColumnType("integer") .HasColumnName("trade_id"); b.HasKey("Id") .HasName("pk_trade_items"); b.HasIndex("InventoryItemId") .HasDatabaseName("ix_trade_items_inventory_item_id"); b.HasIndex("TradeId") .HasDatabaseName("ix_trade_items_trade_id"); b.ToTable("trade_items", "skintracker"); }); modelBuilder.Entity("BlueLaminate.EFCore.Entities.Weapon", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("integer") .HasColumnName("id"); NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); b.Property("Name") .IsRequired() .HasColumnType("text") .HasColumnName("name"); b.Property("Team") .IsRequired() .HasColumnType("text") .HasColumnName("team"); b.Property("Type") .IsRequired() .HasColumnType("text") .HasColumnName("type"); b.HasKey("Id") .HasName("pk_weapons"); b.HasIndex("Name") .IsUnique() .HasDatabaseName("ix_weapons_name"); b.ToTable("weapons", "skintracker"); }); modelBuilder.Entity("CollectionSkin", b => { b.Property("CollectionsId") .HasColumnType("integer") .HasColumnName("collections_id"); b.Property("SkinsId") .HasColumnType("integer") .HasColumnName("skins_id"); b.HasKey("CollectionsId", "SkinsId") .HasName("pk_skin_collections"); b.HasIndex("SkinsId") .HasDatabaseName("ix_skin_collections_skins_id"); b.ToTable("skin_collections", "skintracker"); }); modelBuilder.Entity("BlueLaminate.EFCore.Entities.CsMoneyListing", b => { b.HasOne("BlueLaminate.EFCore.Entities.SkinCondition", "Condition") .WithMany() .HasForeignKey("ConditionId") .OnDelete(DeleteBehavior.SetNull) .HasConstraintName("fk_cs_money_listings_skin_conditions_condition_id"); b.HasOne("BlueLaminate.EFCore.Entities.Skin", "Skin") .WithMany() .HasForeignKey("SkinId") .OnDelete(DeleteBehavior.Restrict) .IsRequired() .HasConstraintName("fk_cs_money_listings_skins_skin_id"); b.HasOne("BlueLaminate.EFCore.Entities.SkinInstance", "SkinInstance") .WithMany() .HasForeignKey("SkinInstanceId") .OnDelete(DeleteBehavior.SetNull) .HasConstraintName("fk_cs_money_listings_skin_instances_skin_instance_id"); b.Navigation("Condition"); b.Navigation("Skin"); b.Navigation("SkinInstance"); }); modelBuilder.Entity("BlueLaminate.EFCore.Entities.InventoryItem", b => { b.HasOne("BlueLaminate.EFCore.Entities.SkinInstance", "SkinInstance") .WithMany("InventoryItems") .HasForeignKey("SkinInstanceId") .OnDelete(DeleteBehavior.Cascade) .IsRequired() .HasConstraintName("fk_inventory_items_skin_instances_skin_instance_id"); b.HasOne("BlueLaminate.EFCore.Entities.SteamUser", "User") .WithMany("InventoryItems") .HasForeignKey("UserId") .OnDelete(DeleteBehavior.Cascade) .IsRequired() .HasConstraintName("fk_inventory_items_steam_users_user_id"); b.Navigation("SkinInstance"); b.Navigation("User"); }); modelBuilder.Entity("BlueLaminate.EFCore.Entities.Listing", b => { b.HasOne("BlueLaminate.EFCore.Entities.Skin", "Skin") .WithMany() .HasForeignKey("SkinId") .OnDelete(DeleteBehavior.SetNull) .HasConstraintName("fk_listings_skins_skin_id"); b.HasOne("BlueLaminate.EFCore.Entities.SkinInstance", "SkinInstance") .WithMany("Listings") .HasForeignKey("SkinInstanceId") .OnDelete(DeleteBehavior.SetNull) .HasConstraintName("fk_listings_skin_instances_skin_instance_id"); b.Navigation("Skin"); b.Navigation("SkinInstance"); }); modelBuilder.Entity("BlueLaminate.EFCore.Entities.PriceHistory", b => { b.HasOne("BlueLaminate.EFCore.Entities.SkinCondition", "Condition") .WithMany("PriceHistories") .HasForeignKey("ConditionId") .OnDelete(DeleteBehavior.Restrict) .IsRequired() .HasConstraintName("fk_price_histories_skin_conditions_condition_id"); b.HasOne("BlueLaminate.EFCore.Entities.Skin", "Skin") .WithMany("PriceHistories") .HasForeignKey("SkinId") .OnDelete(DeleteBehavior.Cascade) .IsRequired() .HasConstraintName("fk_price_histories_skins_skin_id"); b.Navigation("Condition"); b.Navigation("Skin"); }); modelBuilder.Entity("BlueLaminate.EFCore.Entities.Skin", b => { b.HasOne("BlueLaminate.EFCore.Entities.Weapon", "Weapon") .WithMany("Skins") .HasForeignKey("WeaponId") .OnDelete(DeleteBehavior.Cascade) .IsRequired() .HasConstraintName("fk_skins_weapons_weapon_id"); b.Navigation("Weapon"); }); modelBuilder.Entity("BlueLaminate.EFCore.Entities.SkinCondition", b => { b.HasOne("BlueLaminate.EFCore.Entities.Skin", "Skin") .WithMany("Conditions") .HasForeignKey("SkinId") .OnDelete(DeleteBehavior.Cascade) .IsRequired() .HasConstraintName("fk_skin_conditions_skins_skin_id"); b.Navigation("Skin"); }); modelBuilder.Entity("BlueLaminate.EFCore.Entities.SkinConditionSweep", b => { b.HasOne("BlueLaminate.EFCore.Entities.SkinCondition", "SkinCondition") .WithMany("Sweeps") .HasForeignKey("SkinConditionId") .OnDelete(DeleteBehavior.Cascade) .IsRequired() .HasConstraintName("fk_skin_condition_sweeps_skin_conditions_skin_condition_id"); b.Navigation("SkinCondition"); }); modelBuilder.Entity("BlueLaminate.EFCore.Entities.SkinInstance", b => { b.HasOne("BlueLaminate.EFCore.Entities.SkinCondition", "Condition") .WithMany("Instances") .HasForeignKey("ConditionId") .OnDelete(DeleteBehavior.SetNull) .HasConstraintName("fk_skin_instances_skin_conditions_condition_id"); b.HasOne("BlueLaminate.EFCore.Entities.Skin", "Skin") .WithMany("Instances") .HasForeignKey("SkinId") .OnDelete(DeleteBehavior.Cascade) .IsRequired() .HasConstraintName("fk_skin_instances_skins_skin_id"); b.Navigation("Condition"); b.Navigation("Skin"); }); modelBuilder.Entity("BlueLaminate.EFCore.Entities.SkinSweep", b => { b.HasOne("BlueLaminate.EFCore.Entities.Skin", "Skin") .WithMany("Sweeps") .HasForeignKey("SkinId") .OnDelete(DeleteBehavior.Cascade) .IsRequired() .HasConstraintName("fk_skin_sweeps_skins_skin_id"); b.Navigation("Skin"); }); modelBuilder.Entity("BlueLaminate.EFCore.Entities.Trade", b => { b.HasOne("BlueLaminate.EFCore.Entities.SteamUser", "FromUser") .WithMany("TradesSent") .HasForeignKey("FromUserId") .OnDelete(DeleteBehavior.Restrict) .IsRequired() .HasConstraintName("fk_trades_steam_users_from_user_id"); b.HasOne("BlueLaminate.EFCore.Entities.SteamUser", "ToUser") .WithMany("TradesReceived") .HasForeignKey("ToUserId") .OnDelete(DeleteBehavior.Restrict) .IsRequired() .HasConstraintName("fk_trades_steam_users_to_user_id"); b.Navigation("FromUser"); b.Navigation("ToUser"); }); modelBuilder.Entity("BlueLaminate.EFCore.Entities.TradeItem", b => { b.HasOne("BlueLaminate.EFCore.Entities.InventoryItem", "InventoryItem") .WithMany("TradeItems") .HasForeignKey("InventoryItemId") .OnDelete(DeleteBehavior.Cascade) .IsRequired() .HasConstraintName("fk_trade_items_inventory_items_inventory_item_id"); b.HasOne("BlueLaminate.EFCore.Entities.Trade", "Trade") .WithMany("TradeItems") .HasForeignKey("TradeId") .OnDelete(DeleteBehavior.Cascade) .IsRequired() .HasConstraintName("fk_trade_items_trades_trade_id"); b.Navigation("InventoryItem"); b.Navigation("Trade"); }); modelBuilder.Entity("CollectionSkin", b => { b.HasOne("BlueLaminate.EFCore.Entities.Collection", null) .WithMany() .HasForeignKey("CollectionsId") .OnDelete(DeleteBehavior.Cascade) .IsRequired() .HasConstraintName("fk_skin_collections_collections_collections_id"); b.HasOne("BlueLaminate.EFCore.Entities.Skin", null) .WithMany() .HasForeignKey("SkinsId") .OnDelete(DeleteBehavior.Cascade) .IsRequired() .HasConstraintName("fk_skin_collections_skins_skins_id"); }); modelBuilder.Entity("BlueLaminate.EFCore.Entities.InventoryItem", b => { b.Navigation("TradeItems"); }); modelBuilder.Entity("BlueLaminate.EFCore.Entities.Skin", b => { b.Navigation("Conditions"); b.Navigation("Instances"); b.Navigation("PriceHistories"); b.Navigation("Sweeps"); }); modelBuilder.Entity("BlueLaminate.EFCore.Entities.SkinCondition", b => { b.Navigation("Instances"); b.Navigation("PriceHistories"); b.Navigation("Sweeps"); }); modelBuilder.Entity("BlueLaminate.EFCore.Entities.SkinInstance", b => { b.Navigation("InventoryItems"); b.Navigation("Listings"); }); modelBuilder.Entity("BlueLaminate.EFCore.Entities.SteamUser", b => { b.Navigation("InventoryItems"); b.Navigation("TradesReceived"); b.Navigation("TradesSent"); }); modelBuilder.Entity("BlueLaminate.EFCore.Entities.Trade", b => { b.Navigation("TradeItems"); }); modelBuilder.Entity("BlueLaminate.EFCore.Entities.Weapon", b => { b.Navigation("Skins"); }); #pragma warning restore 612, 618 } } }