// using System; using BlueLaminate.EFCore.Data; using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore.Infrastructure; using Microsoft.EntityFrameworkCore.Storage.ValueConversion; using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata; #nullable disable namespace BlueLaminate.EFCore.Migrations { [DbContext(typeof(SkinTrackerDbContext))] partial class SkinTrackerDbContextModelSnapshot : ModelSnapshot { protected override void BuildModel(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.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.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.Skin", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("integer") .HasColumnName("id"); NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); b.Property("Description") .HasColumnType("text") .HasColumnName("description"); b.Property("FloatMax") .ValueGeneratedOnAdd() .HasColumnType("numeric(10,9)") .HasDefaultValue(1.0m) .HasColumnName("float_max"); b.Property("FloatMin") .ValueGeneratedOnAdd() .HasColumnType("numeric(10,9)") .HasDefaultValue(0.0m) .HasColumnName("float_min"); b.Property("ImageUrl") .HasColumnType("text") .HasColumnName("image_url"); b.Property("Name") .IsRequired() .HasColumnType("text") .HasColumnName("name"); b.Property("Rarity") .IsRequired() .HasColumnType("text") .HasColumnName("rarity"); 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("TrueFloat") .HasDatabaseName("ix_skins_true_float"); b.HasIndex("WeaponId") .HasDatabaseName("ix_skins_weapon_id"); 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.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("FirstSeenAt") .HasColumnType("timestamp with time zone") .HasColumnName("first_seen_at"); b.Property("FloatValue") .HasColumnType("numeric(10,9)") .HasColumnName("float_value"); 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.HasKey("Id") .HasName("pk_skin_instances"); b.HasIndex("ConditionId") .HasDatabaseName("ix_skin_instances_condition_id"); b.HasIndex("FloatValue") .HasDatabaseName("ix_skin_instances_float_value"); b.HasIndex("PaintSeed") .HasDatabaseName("ix_skin_instances_paint_seed"); b.HasIndex("SkinId") .HasDatabaseName("ix_skin_instances_skin_id"); b.ToTable("skin_instances", "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.ToTable("weapons", "skintracker"); }); 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.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.SkinInstance", b => { b.HasOne("BlueLaminate.EFCore.Entities.SkinCondition", "Condition") .WithMany("Instances") .HasForeignKey("ConditionId") .OnDelete(DeleteBehavior.Restrict) .IsRequired() .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.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("BlueLaminate.EFCore.Entities.InventoryItem", b => { b.Navigation("TradeItems"); }); modelBuilder.Entity("BlueLaminate.EFCore.Entities.Skin", b => { b.Navigation("Conditions"); b.Navigation("Instances"); b.Navigation("PriceHistories"); }); modelBuilder.Entity("BlueLaminate.EFCore.Entities.SkinCondition", b => { b.Navigation("Instances"); b.Navigation("PriceHistories"); }); modelBuilder.Entity("BlueLaminate.EFCore.Entities.SkinInstance", b => { b.Navigation("InventoryItems"); }); 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 } } }