- Fix (Richard): MaxBuyPrice-Skalen-Korrektur analog PreRedeemLimit (Migration FixMaxBuyPriceScale: Werte > 1 wie 98.0/99.0 -> /100 = 0.98/0.99; auf MySQL angewendet). Cap greift bei den betroffenen Accounts jetzt wieder. Beschreibung des Feldes um den Skalen-Hinweis ergaenzt. - Testnetz erweitert: reine Klasse BlockchainSubscription (Logic/) fuer das Alchemy-Abo (PadAddress + Filter-Batching in 3er-Chunks, Buy=Topic3/Sell=Topic2 je Chunk). AlchemyWebsocketService ruft sie jetzt (verhaltensneutral; Konstanten + lokale Methoden entfernt). BlockchainSubscriptionTests: 13 Faelle (Padding, Chunk-Anzahl 0/1/3/4/6/7, Topic-Zuordnung, CTF-Adresse/Topics). Gesamt 137 Tests gruen. Build/Smoke gruen. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
271 lines
9.5 KiB
C#
271 lines
9.5 KiB
C#
// <auto-generated />
|
|
using System;
|
|
using Microsoft.EntityFrameworkCore;
|
|
using Microsoft.EntityFrameworkCore.Infrastructure;
|
|
using Microsoft.EntityFrameworkCore.Metadata;
|
|
using Microsoft.EntityFrameworkCore.Migrations;
|
|
using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
|
|
using PolyTrader.Modules.CopyTrading.Persistence.Ef;
|
|
|
|
#nullable disable
|
|
|
|
namespace PolyTrader.Modules.CopyTrading.Persistence.Ef.Migrations
|
|
{
|
|
[DbContext(typeof(CopyTradingDbContext))]
|
|
[Migration("20260707084602_FixMaxBuyPriceScale")]
|
|
partial class FixMaxBuyPriceScale
|
|
{
|
|
/// <inheritdoc />
|
|
protected override void BuildTargetModel(ModelBuilder modelBuilder)
|
|
{
|
|
#pragma warning disable 612, 618
|
|
modelBuilder
|
|
.HasAnnotation("ProductVersion", "8.0.13")
|
|
.HasAnnotation("Relational:MaxIdentifierLength", 64);
|
|
|
|
MySqlModelBuilderExtensions.AutoIncrementColumns(modelBuilder);
|
|
|
|
modelBuilder.Entity("PolyTraderSharp.Models.ClosedTrade", b =>
|
|
{
|
|
b.Property<int>("TradeId")
|
|
.HasColumnType("int");
|
|
|
|
b.Property<int>("AccountId")
|
|
.HasColumnType("int");
|
|
|
|
b.Property<DateTime>("ClosedAt")
|
|
.HasColumnType("datetime(6)");
|
|
|
|
b.Property<decimal>("EntryPrice")
|
|
.HasPrecision(18, 6)
|
|
.HasColumnType("decimal(18,6)");
|
|
|
|
b.Property<decimal>("ExitPrice")
|
|
.HasPrecision(18, 6)
|
|
.HasColumnType("decimal(18,6)");
|
|
|
|
b.Property<string>("ExitReason")
|
|
.IsRequired()
|
|
.HasMaxLength(200)
|
|
.HasColumnType("varchar(200)");
|
|
|
|
b.Property<bool>("IsDemo")
|
|
.HasColumnType("tinyint(1)");
|
|
|
|
b.Property<string>("MarketQuestion")
|
|
.IsRequired()
|
|
.HasMaxLength(1000)
|
|
.HasColumnType("varchar(1000)");
|
|
|
|
b.Property<string>("MarketSlug")
|
|
.IsRequired()
|
|
.HasMaxLength(300)
|
|
.HasColumnType("varchar(300)");
|
|
|
|
b.Property<DateTime>("OpenedAt")
|
|
.HasColumnType("datetime(6)");
|
|
|
|
b.Property<string>("Outcome")
|
|
.IsRequired()
|
|
.HasMaxLength(200)
|
|
.HasColumnType("varchar(200)");
|
|
|
|
b.Property<decimal>("PnlPercent")
|
|
.HasPrecision(18, 6)
|
|
.HasColumnType("decimal(18,6)");
|
|
|
|
b.Property<decimal>("RealizedPnl")
|
|
.HasPrecision(18, 6)
|
|
.HasColumnType("decimal(18,6)");
|
|
|
|
b.Property<string>("Side")
|
|
.IsRequired()
|
|
.HasMaxLength(10)
|
|
.HasColumnType("varchar(10)");
|
|
|
|
b.Property<decimal>("Size")
|
|
.HasPrecision(18, 6)
|
|
.HasColumnType("decimal(18,6)");
|
|
|
|
b.Property<int>("SourceTraderId")
|
|
.HasColumnType("int");
|
|
|
|
b.Property<string>("TokenId")
|
|
.IsRequired()
|
|
.HasMaxLength(120)
|
|
.HasColumnType("varchar(120)");
|
|
|
|
b.Property<decimal>("TotalFees")
|
|
.HasPrecision(18, 6)
|
|
.HasColumnType("decimal(18,6)");
|
|
|
|
b.HasKey("TradeId");
|
|
|
|
b.HasIndex("AccountId");
|
|
|
|
b.HasIndex("SourceTraderId");
|
|
|
|
b.HasIndex("TokenId");
|
|
|
|
b.ToTable("mod_copytrading_closed_trades", (string)null);
|
|
});
|
|
|
|
modelBuilder.Entity("PolyTraderSharp.Models.CopyTradingAccountSettings", b =>
|
|
{
|
|
b.Property<int>("AccountId")
|
|
.HasColumnType("int");
|
|
|
|
b.Property<decimal>("MaxBuyPrice")
|
|
.HasPrecision(18, 6)
|
|
.HasColumnType("decimal(18,6)");
|
|
|
|
b.Property<decimal>("MaxPriceDifference")
|
|
.HasPrecision(18, 6)
|
|
.HasColumnType("decimal(18,6)");
|
|
|
|
b.Property<decimal>("MaxSpreadPct")
|
|
.HasPrecision(18, 6)
|
|
.HasColumnType("decimal(18,6)");
|
|
|
|
b.Property<decimal>("MinSellRatioPct")
|
|
.HasPrecision(18, 6)
|
|
.HasColumnType("decimal(18,6)");
|
|
|
|
b.Property<decimal>("PerMarketLimit")
|
|
.HasPrecision(18, 6)
|
|
.HasColumnType("decimal(18,6)");
|
|
|
|
b.Property<decimal>("PerMasterLimit")
|
|
.HasPrecision(18, 6)
|
|
.HasColumnType("decimal(18,6)");
|
|
|
|
b.Property<decimal>("PreRedeemLimit")
|
|
.HasPrecision(18, 6)
|
|
.HasColumnType("decimal(18,6)");
|
|
|
|
b.Property<decimal>("ProfitTarget")
|
|
.HasPrecision(18, 6)
|
|
.HasColumnType("decimal(18,6)");
|
|
|
|
b.Property<decimal>("SellFloorPct")
|
|
.HasPrecision(18, 6)
|
|
.HasColumnType("decimal(18,6)");
|
|
|
|
b.Property<decimal>("perMaxTime24h")
|
|
.HasPrecision(18, 6)
|
|
.HasColumnType("decimal(18,6)");
|
|
|
|
b.Property<decimal>("perMaxTime6h")
|
|
.HasPrecision(18, 6)
|
|
.HasColumnType("decimal(18,6)");
|
|
|
|
b.Property<decimal>("perMaxTime72h")
|
|
.HasPrecision(18, 6)
|
|
.HasColumnType("decimal(18,6)");
|
|
|
|
b.Property<decimal>("perMaxTimeNone")
|
|
.HasPrecision(18, 6)
|
|
.HasColumnType("decimal(18,6)");
|
|
|
|
b.HasKey("AccountId");
|
|
|
|
b.ToTable("mod_copytrading_account_settings", (string)null);
|
|
});
|
|
|
|
modelBuilder.Entity("PolyTraderSharp.Models.MasterTraderHistoryRecord", b =>
|
|
{
|
|
b.Property<string>("Id")
|
|
.HasMaxLength(64)
|
|
.HasColumnType("varchar(64)");
|
|
|
|
b.Property<DateTime>("ClosedAt")
|
|
.HasColumnType("datetime(6)");
|
|
|
|
b.Property<decimal>("RealizedPnl")
|
|
.HasPrecision(18, 6)
|
|
.HasColumnType("decimal(18,6)");
|
|
|
|
b.Property<string>("TokenId")
|
|
.IsRequired()
|
|
.HasMaxLength(120)
|
|
.HasColumnType("varchar(120)");
|
|
|
|
b.Property<int>("TraderId")
|
|
.HasColumnType("int");
|
|
|
|
b.HasKey("Id");
|
|
|
|
b.HasIndex("ClosedAt");
|
|
|
|
b.HasIndex("TraderId");
|
|
|
|
b.ToTable("mod_copytrading_mt_history", (string)null);
|
|
});
|
|
|
|
modelBuilder.Entity("PolyTraderSharp.Models.TrackedTrader", b =>
|
|
{
|
|
b.Property<int>("Id")
|
|
.HasColumnType("int");
|
|
|
|
b.Property<string>("AssignedAccountIds")
|
|
.IsRequired()
|
|
.HasColumnType("text");
|
|
|
|
b.Property<bool>("AutoPauseEnabled")
|
|
.HasColumnType("tinyint(1)");
|
|
|
|
b.Property<string>("Category")
|
|
.IsRequired()
|
|
.HasMaxLength(64)
|
|
.HasColumnType("varchar(64)");
|
|
|
|
b.Property<string>("Description")
|
|
.IsRequired()
|
|
.HasMaxLength(1000)
|
|
.HasColumnType("varchar(1000)");
|
|
|
|
b.Property<string>("DisplayName")
|
|
.IsRequired()
|
|
.HasMaxLength(200)
|
|
.HasColumnType("varchar(200)");
|
|
|
|
b.Property<bool>("IsActive")
|
|
.HasColumnType("tinyint(1)");
|
|
|
|
b.Property<bool>("IsHidden")
|
|
.HasColumnType("tinyint(1)");
|
|
|
|
b.Property<bool>("MakerEntry")
|
|
.HasColumnType("tinyint(1)");
|
|
|
|
b.Property<string>("Reasoning")
|
|
.IsRequired()
|
|
.HasMaxLength(1000)
|
|
.HasColumnType("varchar(1000)");
|
|
|
|
b.Property<double>("TotalPnl")
|
|
.HasColumnType("double");
|
|
|
|
b.Property<int>("TotalTrades")
|
|
.HasColumnType("int");
|
|
|
|
b.Property<string>("WalletAddress")
|
|
.IsRequired()
|
|
.HasMaxLength(128)
|
|
.HasColumnType("varchar(128)");
|
|
|
|
b.Property<int>("WinningTrades")
|
|
.HasColumnType("int");
|
|
|
|
b.Property<double>("Winrate30t")
|
|
.HasColumnType("double");
|
|
|
|
b.HasKey("Id");
|
|
|
|
b.ToTable("mod_copytrading_traders", (string)null);
|
|
});
|
|
#pragma warning restore 612, 618
|
|
}
|
|
}
|
|
}
|