diff --git a/src/Managing.Infrastructure.Database/Migrations/20250801100607_Init.Designer.cs b/src/Managing.Infrastructure.Database/Migrations/20250801100607_Init.Designer.cs
deleted file mode 100644
index c732943..0000000
--- a/src/Managing.Infrastructure.Database/Migrations/20250801100607_Init.Designer.cs
+++ /dev/null
@@ -1,1364 +0,0 @@
-//
-using System;
-using Managing.Infrastructure.Databases.PostgreSql;
-using Microsoft.EntityFrameworkCore;
-using Microsoft.EntityFrameworkCore.Infrastructure;
-using Microsoft.EntityFrameworkCore.Migrations;
-using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
-using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata;
-
-#nullable disable
-
-namespace Managing.Infrastructure.Databases.Migrations
-{
- [DbContext(typeof(ManagingDbContext))]
- [Migration("20250801100607_Init")]
- partial class Init
- {
- ///
- protected override void BuildTargetModel(ModelBuilder modelBuilder)
- {
-#pragma warning disable 612, 618
- modelBuilder
- .HasAnnotation("ProductVersion", "8.0.11")
- .HasAnnotation("Relational:MaxIdentifierLength", 63);
-
- NpgsqlModelBuilderExtensions.UseIdentityByDefaultColumns(modelBuilder);
-
- modelBuilder.Entity("Managing.Infrastructure.Databases.PostgreSql.Entities.AccountEntity", b =>
- {
- b.Property("Id")
- .ValueGeneratedOnAdd()
- .HasColumnType("integer");
-
- NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id"));
-
- b.Property("Exchange")
- .IsRequired()
- .HasColumnType("text");
-
- b.Property("Key")
- .HasMaxLength(500)
- .HasColumnType("character varying(500)");
-
- b.Property("Name")
- .IsRequired()
- .HasMaxLength(255)
- .HasColumnType("character varying(255)");
-
- b.Property("Secret")
- .HasMaxLength(500)
- .HasColumnType("character varying(500)");
-
- b.Property("Type")
- .IsRequired()
- .HasColumnType("text");
-
- b.Property("UserId")
- .HasColumnType("integer");
-
- b.HasKey("Id");
-
- b.HasIndex("Key");
-
- b.HasIndex("Name")
- .IsUnique();
-
- b.HasIndex("UserId");
-
- b.ToTable("Accounts");
- });
-
- modelBuilder.Entity("Managing.Infrastructure.Databases.PostgreSql.Entities.BacktestEntity", b =>
- {
- b.Property("Id")
- .ValueGeneratedOnAdd()
- .HasColumnType("integer");
-
- NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id"));
-
- b.Property("ConfigJson")
- .IsRequired()
- .HasColumnType("jsonb");
-
- b.Property("CreatedAt")
- .HasColumnType("timestamp with time zone");
-
- b.Property("EndDate")
- .HasColumnType("timestamp with time zone");
-
- b.Property("Fees")
- .HasColumnType("decimal(18,8)");
-
- b.Property("FinalPnl")
- .HasColumnType("decimal(18,8)");
-
- b.Property("GrowthPercentage")
- .HasColumnType("decimal(18,8)");
-
- b.Property("HodlPercentage")
- .HasColumnType("decimal(18,8)");
-
- b.Property("Identifier")
- .IsRequired()
- .HasMaxLength(255)
- .HasColumnType("character varying(255)");
-
- b.Property("Metadata")
- .HasColumnType("text");
-
- b.Property("MoneyManagementJson")
- .IsRequired()
- .HasColumnType("jsonb");
-
- b.Property("PositionsJson")
- .IsRequired()
- .HasColumnType("jsonb");
-
- b.Property("RequestId")
- .IsRequired()
- .HasMaxLength(255)
- .HasColumnType("character varying(255)");
-
- b.Property("Score")
- .HasColumnType("double precision");
-
- b.Property("ScoreMessage")
- .IsRequired()
- .HasMaxLength(1000)
- .HasColumnType("text");
-
- b.Property("SignalsJson")
- .IsRequired()
- .HasColumnType("jsonb");
-
- b.Property("StartDate")
- .HasColumnType("timestamp with time zone");
-
- b.Property("StatisticsJson")
- .HasColumnType("jsonb");
-
- b.Property("UpdatedAt")
- .HasColumnType("timestamp with time zone");
-
- b.Property("UserName")
- .IsRequired()
- .HasMaxLength(255)
- .HasColumnType("character varying(255)");
-
- b.Property("WinRate")
- .HasColumnType("integer");
-
- b.HasKey("Id");
-
- b.HasIndex("CreatedAt");
-
- b.HasIndex("EndDate");
-
- b.HasIndex("FinalPnl");
-
- b.HasIndex("Identifier")
- .IsUnique();
-
- b.HasIndex("RequestId");
-
- b.HasIndex("Score");
-
- b.HasIndex("StartDate");
-
- b.HasIndex("UserName");
-
- b.HasIndex("WinRate");
-
- b.HasIndex("RequestId", "Score");
-
- b.HasIndex("UserName", "Score");
-
- b.ToTable("Backtests");
- });
-
- modelBuilder.Entity("Managing.Infrastructure.Databases.PostgreSql.Entities.BotEntity", b =>
- {
- b.Property("Identifier")
- .ValueGeneratedOnAdd()
- .HasMaxLength(255)
- .HasColumnType("uuid");
-
- b.Property("CreateDate")
- .HasColumnType("timestamp with time zone");
-
- b.Property("Fees")
- .HasPrecision(18, 8)
- .HasColumnType("numeric(18,8)");
-
- b.Property("Name")
- .IsRequired()
- .HasMaxLength(255)
- .HasColumnType("character varying(255)");
-
- b.Property("Pnl")
- .HasPrecision(18, 8)
- .HasColumnType("numeric(18,8)");
-
- b.Property("Roi")
- .HasPrecision(18, 8)
- .HasColumnType("numeric(18,8)");
-
- b.Property("StartupTime")
- .HasColumnType("timestamp with time zone");
-
- b.Property("Status")
- .IsRequired()
- .HasColumnType("text");
-
- b.Property("TradeLosses")
- .HasColumnType("integer");
-
- b.Property("TradeWins")
- .HasColumnType("integer");
-
- b.Property("UpdatedAt")
- .HasColumnType("timestamp with time zone");
-
- b.Property("UserId")
- .HasColumnType("integer");
-
- b.Property("Volume")
- .HasPrecision(18, 8)
- .HasColumnType("numeric(18,8)");
-
- b.HasKey("Identifier");
-
- b.HasIndex("CreateDate");
-
- b.HasIndex("Identifier")
- .IsUnique();
-
- b.HasIndex("Status");
-
- b.HasIndex("UserId");
-
- b.ToTable("Bots");
- });
-
- modelBuilder.Entity("Managing.Infrastructure.Databases.PostgreSql.Entities.BundleBacktestRequestEntity", b =>
- {
- b.Property("Id")
- .ValueGeneratedOnAdd()
- .HasColumnType("integer");
-
- NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id"));
-
- b.Property("BacktestRequestsJson")
- .IsRequired()
- .HasColumnType("text");
-
- b.Property("CompletedAt")
- .HasColumnType("timestamp with time zone");
-
- b.Property("CompletedBacktests")
- .HasColumnType("integer");
-
- b.Property("CreatedAt")
- .HasColumnType("timestamp with time zone");
-
- b.Property("CurrentBacktest")
- .HasMaxLength(500)
- .HasColumnType("character varying(500)");
-
- b.Property("ErrorMessage")
- .HasColumnType("text");
-
- b.Property("EstimatedTimeRemainingSeconds")
- .HasColumnType("integer");
-
- b.Property("FailedBacktests")
- .HasColumnType("integer");
-
- b.Property("Name")
- .IsRequired()
- .HasMaxLength(255)
- .HasColumnType("character varying(255)");
-
- b.Property("ProgressInfo")
- .HasColumnType("text");
-
- b.Property("RequestId")
- .IsRequired()
- .HasMaxLength(255)
- .HasColumnType("character varying(255)");
-
- b.Property("ResultsJson")
- .IsRequired()
- .HasColumnType("jsonb");
-
- b.Property("Status")
- .IsRequired()
- .HasColumnType("text");
-
- b.Property("TotalBacktests")
- .HasColumnType("integer");
-
- b.Property("UpdatedAt")
- .HasColumnType("timestamp with time zone");
-
- b.Property("UserId")
- .HasColumnType("integer");
-
- b.Property("UserName")
- .IsRequired()
- .HasMaxLength(255)
- .HasColumnType("character varying(255)");
-
- b.HasKey("Id");
-
- b.HasIndex("CompletedAt");
-
- b.HasIndex("CreatedAt");
-
- b.HasIndex("RequestId")
- .IsUnique();
-
- b.HasIndex("Status");
-
- b.HasIndex("UserId");
-
- b.HasIndex("UserName");
-
- b.HasIndex("UserName", "CreatedAt");
-
- b.ToTable("BundleBacktestRequests");
- });
-
- modelBuilder.Entity("Managing.Infrastructure.Databases.PostgreSql.Entities.FundingRateEntity", b =>
- {
- b.Property("Id")
- .ValueGeneratedOnAdd()
- .HasColumnType("integer");
-
- NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id"));
-
- b.Property("CreatedAt")
- .HasColumnType("timestamp with time zone");
-
- b.Property("Date")
- .HasColumnType("timestamp with time zone");
-
- b.Property("Direction")
- .HasColumnType("integer");
-
- b.Property("Exchange")
- .HasColumnType("integer");
-
- b.Property("OpenInterest")
- .HasPrecision(18, 8)
- .HasColumnType("decimal(18,8)");
-
- b.Property("Rate")
- .HasPrecision(18, 8)
- .HasColumnType("decimal(18,8)");
-
- b.Property("Ticker")
- .HasColumnType("integer");
-
- b.Property("UpdatedAt")
- .HasColumnType("timestamp with time zone");
-
- b.HasKey("Id");
-
- b.HasIndex("Date");
-
- b.HasIndex("Direction");
-
- b.HasIndex("Exchange");
-
- b.HasIndex("Ticker");
-
- b.HasIndex("Exchange", "Date");
-
- b.HasIndex("Ticker", "Exchange");
-
- b.HasIndex("Ticker", "Exchange", "Date")
- .IsUnique();
-
- b.ToTable("FundingRates");
- });
-
- modelBuilder.Entity("Managing.Infrastructure.Databases.PostgreSql.Entities.GeneticRequestEntity", b =>
- {
- b.Property("Id")
- .ValueGeneratedOnAdd()
- .HasColumnType("integer");
-
- NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id"));
-
- b.Property("Balance")
- .HasColumnType("decimal(18,8)");
-
- b.Property("BestChromosome")
- .HasMaxLength(4000)
- .HasColumnType("character varying(4000)");
-
- b.Property("BestFitness")
- .HasColumnType("double precision");
-
- b.Property("BestFitnessSoFar")
- .HasColumnType("double precision");
-
- b.Property("BestIndividual")
- .HasMaxLength(4000)
- .HasColumnType("character varying(4000)");
-
- b.Property("CompletedAt")
- .HasColumnType("timestamp with time zone");
-
- b.Property("CreatedAt")
- .HasColumnType("timestamp with time zone");
-
- b.Property("CrossoverMethod")
- .IsRequired()
- .HasColumnType("text");
-
- b.Property("CurrentGeneration")
- .HasColumnType("integer");
-
- b.Property("EligibleIndicatorsJson")
- .HasMaxLength(2000)
- .HasColumnType("character varying(2000)");
-
- b.Property("ElitismPercentage")
- .HasColumnType("integer");
-
- b.Property("EndDate")
- .HasColumnType("timestamp with time zone");
-
- b.Property("ErrorMessage")
- .HasMaxLength(2000)
- .HasColumnType("character varying(2000)");
-
- b.Property("Generations")
- .HasColumnType("integer");
-
- b.Property("MaxTakeProfit")
- .HasColumnType("double precision");
-
- b.Property("MutationMethod")
- .IsRequired()
- .HasColumnType("text");
-
- b.Property("MutationRate")
- .HasColumnType("double precision");
-
- b.Property("PopulationSize")
- .HasColumnType("integer");
-
- b.Property("ProgressInfo")
- .HasMaxLength(4000)
- .HasColumnType("character varying(4000)");
-
- b.Property("RequestId")
- .IsRequired()
- .HasMaxLength(255)
- .HasColumnType("character varying(255)");
-
- b.Property("SelectionMethod")
- .IsRequired()
- .HasColumnType("text");
-
- b.Property("StartDate")
- .HasColumnType("timestamp with time zone");
-
- b.Property("Status")
- .IsRequired()
- .HasMaxLength(50)
- .HasColumnType("character varying(50)");
-
- b.Property("Ticker")
- .IsRequired()
- .HasColumnType("text");
-
- b.Property("Timeframe")
- .IsRequired()
- .HasColumnType("text");
-
- b.Property("UpdatedAt")
- .HasColumnType("timestamp with time zone");
-
- b.Property("UserId")
- .HasColumnType("integer");
-
- b.HasKey("Id");
-
- b.HasIndex("CreatedAt");
-
- b.HasIndex("RequestId")
- .IsUnique();
-
- b.HasIndex("Status");
-
- b.HasIndex("UserId");
-
- b.ToTable("GeneticRequests");
- });
-
- modelBuilder.Entity("Managing.Infrastructure.Databases.PostgreSql.Entities.IndicatorEntity", b =>
- {
- b.Property("Id")
- .ValueGeneratedOnAdd()
- .HasColumnType("integer");
-
- NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id"));
-
- b.Property("CreatedAt")
- .HasColumnType("timestamp with time zone");
-
- b.Property("CyclePeriods")
- .HasColumnType("integer");
-
- b.Property("FastPeriods")
- .HasColumnType("integer");
-
- b.Property("MinimumHistory")
- .HasColumnType("integer");
-
- b.Property("Multiplier")
- .HasColumnType("double precision");
-
- b.Property("Name")
- .IsRequired()
- .HasMaxLength(255)
- .HasColumnType("character varying(255)");
-
- b.Property("Period")
- .HasColumnType("integer");
-
- b.Property("SignalPeriods")
- .HasColumnType("integer");
-
- b.Property("SignalType")
- .IsRequired()
- .HasColumnType("text");
-
- b.Property("SlowPeriods")
- .HasColumnType("integer");
-
- b.Property("SmoothPeriods")
- .HasColumnType("integer");
-
- b.Property("StochPeriods")
- .HasColumnType("integer");
-
- b.Property("Timeframe")
- .IsRequired()
- .HasColumnType("text");
-
- b.Property("Type")
- .IsRequired()
- .HasColumnType("text");
-
- b.Property("UpdatedAt")
- .HasColumnType("timestamp with time zone");
-
- b.Property("UserName")
- .HasMaxLength(255)
- .HasColumnType("character varying(255)");
-
- b.HasKey("Id");
-
- b.HasIndex("CreatedAt");
-
- b.HasIndex("Name");
-
- b.HasIndex("Type");
-
- b.HasIndex("UserName");
-
- b.HasIndex("UserName", "Name");
-
- b.ToTable("Indicators");
- });
-
- modelBuilder.Entity("Managing.Infrastructure.Databases.PostgreSql.Entities.MoneyManagementEntity", b =>
- {
- b.Property("Id")
- .ValueGeneratedOnAdd()
- .HasColumnType("integer");
-
- NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id"));
-
- b.Property("CreatedAt")
- .HasColumnType("timestamp with time zone");
-
- b.Property("Leverage")
- .HasColumnType("decimal(18,8)");
-
- b.Property("Name")
- .IsRequired()
- .HasMaxLength(255)
- .HasColumnType("character varying(255)");
-
- b.Property("StopLoss")
- .HasColumnType("decimal(18,8)");
-
- b.Property("TakeProfit")
- .HasColumnType("decimal(18,8)");
-
- b.Property("Timeframe")
- .IsRequired()
- .HasColumnType("text");
-
- b.Property("UpdatedAt")
- .HasColumnType("timestamp with time zone");
-
- b.Property("UserId")
- .HasColumnType("integer");
-
- b.Property("UserName")
- .HasMaxLength(255)
- .HasColumnType("character varying(255)");
-
- b.HasKey("Id");
-
- b.HasIndex("Name");
-
- b.HasIndex("UserId");
-
- b.HasIndex("UserName");
-
- b.HasIndex("UserName", "Name");
-
- b.ToTable("MoneyManagements");
- });
-
- modelBuilder.Entity("Managing.Infrastructure.Databases.PostgreSql.Entities.PositionEntity", b =>
- {
- b.Property("Identifier")
- .ValueGeneratedOnAdd()
- .HasColumnType("uuid");
-
- b.Property("AccountName")
- .IsRequired()
- .HasMaxLength(255)
- .HasColumnType("character varying(255)");
-
- b.Property("CreatedAt")
- .HasColumnType("timestamp with time zone");
-
- b.Property("Date")
- .HasColumnType("timestamp with time zone");
-
- b.Property("Initiator")
- .IsRequired()
- .HasColumnType("text");
-
- b.Property("MoneyManagementJson")
- .HasColumnType("text");
-
- b.Property("OpenTradeId")
- .HasColumnType("integer");
-
- b.Property("OriginDirection")
- .IsRequired()
- .HasColumnType("text");
-
- b.Property("ProfitAndLoss")
- .HasColumnType("decimal(18,8)");
-
- b.Property("SignalIdentifier")
- .IsRequired()
- .HasMaxLength(255)
- .HasColumnType("character varying(255)");
-
- b.Property("Status")
- .IsRequired()
- .HasColumnType("text");
-
- b.Property("StopLossTradeId")
- .HasColumnType("integer");
-
- b.Property("TakeProfit1TradeId")
- .HasColumnType("integer");
-
- b.Property("TakeProfit2TradeId")
- .HasColumnType("integer");
-
- b.Property("Ticker")
- .IsRequired()
- .HasColumnType("text");
-
- b.Property("UpdatedAt")
- .HasColumnType("timestamp with time zone");
-
- b.Property("UserName")
- .HasMaxLength(255)
- .HasColumnType("character varying(255)");
-
- b.HasKey("Identifier");
-
- b.HasIndex("CreatedAt");
-
- b.HasIndex("Date");
-
- b.HasIndex("Identifier")
- .IsUnique();
-
- b.HasIndex("Initiator");
-
- b.HasIndex("OpenTradeId");
-
- b.HasIndex("Status");
-
- b.HasIndex("StopLossTradeId");
-
- b.HasIndex("TakeProfit1TradeId");
-
- b.HasIndex("TakeProfit2TradeId");
-
- b.HasIndex("UserName");
-
- b.HasIndex("UserName", "Identifier");
-
- b.ToTable("Positions");
- });
-
- modelBuilder.Entity("Managing.Infrastructure.Databases.PostgreSql.Entities.ScenarioEntity", b =>
- {
- b.Property("Id")
- .ValueGeneratedOnAdd()
- .HasColumnType("integer");
-
- NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id"));
-
- b.Property("CreatedAt")
- .HasColumnType("timestamp with time zone");
-
- b.Property("LoopbackPeriod")
- .HasColumnType("integer");
-
- b.Property("Name")
- .IsRequired()
- .HasMaxLength(255)
- .HasColumnType("character varying(255)");
-
- b.Property("UpdatedAt")
- .HasColumnType("timestamp with time zone");
-
- b.Property("UserName")
- .HasMaxLength(255)
- .HasColumnType("character varying(255)");
-
- b.HasKey("Id");
-
- b.HasIndex("CreatedAt");
-
- b.HasIndex("Name");
-
- b.HasIndex("UserName");
-
- b.HasIndex("UserName", "Name");
-
- b.ToTable("Scenarios");
- });
-
- modelBuilder.Entity("Managing.Infrastructure.Databases.PostgreSql.Entities.ScenarioIndicatorEntity", b =>
- {
- b.Property("Id")
- .ValueGeneratedOnAdd()
- .HasColumnType("integer");
-
- NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id"));
-
- b.Property("CreatedAt")
- .HasColumnType("timestamp with time zone");
-
- b.Property("IndicatorId")
- .HasColumnType("integer");
-
- b.Property("ScenarioId")
- .HasColumnType("integer");
-
- b.HasKey("Id");
-
- b.HasIndex("IndicatorId");
-
- b.HasIndex("ScenarioId");
-
- b.HasIndex("ScenarioId", "IndicatorId")
- .IsUnique();
-
- b.ToTable("ScenarioIndicators");
- });
-
- modelBuilder.Entity("Managing.Infrastructure.Databases.PostgreSql.Entities.SignalEntity", b =>
- {
- b.Property("Id")
- .ValueGeneratedOnAdd()
- .HasColumnType("integer");
-
- NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id"));
-
- b.Property("CandleJson")
- .HasColumnType("text");
-
- b.Property("Confidence")
- .IsRequired()
- .HasColumnType("text");
-
- b.Property("CreatedAt")
- .HasColumnType("timestamp with time zone");
-
- b.Property("Date")
- .HasColumnType("timestamp with time zone");
-
- b.Property("Direction")
- .IsRequired()
- .HasColumnType("text");
-
- b.Property("Identifier")
- .IsRequired()
- .HasMaxLength(255)
- .HasColumnType("character varying(255)");
-
- b.Property("IndicatorName")
- .IsRequired()
- .HasMaxLength(255)
- .HasColumnType("character varying(255)");
-
- b.Property("SignalType")
- .IsRequired()
- .HasColumnType("text");
-
- b.Property("Status")
- .IsRequired()
- .HasColumnType("text");
-
- b.Property("Ticker")
- .IsRequired()
- .HasColumnType("text");
-
- b.Property("Timeframe")
- .IsRequired()
- .HasColumnType("text");
-
- b.Property("Type")
- .IsRequired()
- .HasColumnType("text");
-
- b.Property("UpdatedAt")
- .HasColumnType("timestamp with time zone");
-
- b.Property("UserName")
- .HasMaxLength(255)
- .HasColumnType("character varying(255)");
-
- b.HasKey("Id");
-
- b.HasIndex("CreatedAt");
-
- b.HasIndex("Date");
-
- b.HasIndex("Identifier");
-
- b.HasIndex("Status");
-
- b.HasIndex("Ticker");
-
- b.HasIndex("UserName");
-
- b.HasIndex("UserName", "Date");
-
- b.HasIndex("Identifier", "Date", "UserName")
- .IsUnique();
-
- b.ToTable("Signals");
- });
-
- modelBuilder.Entity("Managing.Infrastructure.Databases.PostgreSql.Entities.SpotlightOverviewEntity", b =>
- {
- b.Property("Id")
- .ValueGeneratedOnAdd()
- .HasColumnType("integer");
-
- NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id"));
-
- b.Property("CreatedAt")
- .HasColumnType("timestamp with time zone");
-
- b.Property("DateTime")
- .HasColumnType("timestamp with time zone");
-
- b.Property("Identifier")
- .HasColumnType("uuid");
-
- b.Property("ScenarioCount")
- .HasColumnType("integer");
-
- b.Property("SpotlightsJson")
- .IsRequired()
- .HasColumnType("jsonb");
-
- b.Property("UpdatedAt")
- .HasColumnType("timestamp with time zone");
-
- b.HasKey("Id");
-
- b.HasIndex("DateTime");
-
- b.HasIndex("Identifier")
- .IsUnique();
-
- b.HasIndex("ScenarioCount");
-
- b.HasIndex("DateTime", "ScenarioCount");
-
- b.ToTable("SpotlightOverviews");
- });
-
- modelBuilder.Entity("Managing.Infrastructure.Databases.PostgreSql.Entities.SynthMinersLeaderboardEntity", b =>
- {
- b.Property("Id")
- .ValueGeneratedOnAdd()
- .HasColumnType("uuid");
-
- b.Property("Asset")
- .IsRequired()
- .HasMaxLength(32)
- .HasColumnType("character varying(32)");
-
- b.Property("CacheKey")
- .IsRequired()
- .HasMaxLength(255)
- .HasColumnType("character varying(255)");
-
- b.Property("CreatedAt")
- .HasColumnType("timestamp with time zone");
-
- b.Property("IsBacktest")
- .HasColumnType("boolean");
-
- b.Property("MinersData")
- .IsRequired()
- .HasColumnType("jsonb");
-
- b.Property("SignalDate")
- .HasColumnType("timestamp with time zone");
-
- b.Property("TimeIncrement")
- .HasColumnType("integer");
-
- b.HasKey("Id");
-
- b.HasIndex("CacheKey")
- .IsUnique();
-
- b.HasIndex("CreatedAt");
-
- b.ToTable("SynthMinersLeaderboards");
- });
-
- modelBuilder.Entity("Managing.Infrastructure.Databases.PostgreSql.Entities.SynthPredictionEntity", b =>
- {
- b.Property("Id")
- .ValueGeneratedOnAdd()
- .HasColumnType("uuid");
-
- b.Property("Asset")
- .IsRequired()
- .HasMaxLength(32)
- .HasColumnType("character varying(32)");
-
- b.Property("CacheKey")
- .IsRequired()
- .HasMaxLength(255)
- .HasColumnType("character varying(255)");
-
- b.Property("CreatedAt")
- .HasColumnType("timestamp with time zone");
-
- b.Property("IsBacktest")
- .HasColumnType("boolean");
-
- b.Property("MinerUid")
- .HasColumnType("integer");
-
- b.Property("PredictionData")
- .IsRequired()
- .HasColumnType("jsonb");
-
- b.Property("SignalDate")
- .HasColumnType("timestamp with time zone");
-
- b.Property("TimeIncrement")
- .HasColumnType("integer");
-
- b.Property("TimeLength")
- .HasColumnType("integer");
-
- b.HasKey("Id");
-
- b.HasIndex("CacheKey")
- .IsUnique();
-
- b.HasIndex("CreatedAt");
-
- b.ToTable("SynthPredictions");
- });
-
- modelBuilder.Entity("Managing.Infrastructure.Databases.PostgreSql.Entities.TopVolumeTickerEntity", b =>
- {
- b.Property("Id")
- .ValueGeneratedOnAdd()
- .HasColumnType("integer");
-
- NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id"));
-
- b.Property("CreatedAt")
- .HasColumnType("timestamp with time zone");
-
- b.Property("Date")
- .HasColumnType("timestamp with time zone");
-
- b.Property("Exchange")
- .HasColumnType("integer");
-
- b.Property("Rank")
- .HasColumnType("integer");
-
- b.Property("Ticker")
- .HasColumnType("integer");
-
- b.Property("UpdatedAt")
- .HasColumnType("timestamp with time zone");
-
- b.Property("Volume")
- .HasPrecision(18, 8)
- .HasColumnType("decimal(18,8)");
-
- b.HasKey("Id");
-
- b.HasIndex("Date");
-
- b.HasIndex("Exchange");
-
- b.HasIndex("Rank");
-
- b.HasIndex("Ticker");
-
- b.HasIndex("Date", "Rank");
-
- b.HasIndex("Exchange", "Date");
-
- b.ToTable("TopVolumeTickers");
- });
-
- modelBuilder.Entity("Managing.Infrastructure.Databases.PostgreSql.Entities.TradeEntity", b =>
- {
- b.Property("Id")
- .ValueGeneratedOnAdd()
- .HasColumnType("integer");
-
- NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id"));
-
- b.Property("CreatedAt")
- .HasColumnType("timestamp with time zone");
-
- b.Property("Date")
- .HasColumnType("timestamp with time zone");
-
- b.Property("Direction")
- .IsRequired()
- .HasColumnType("text");
-
- b.Property("ExchangeOrderId")
- .HasMaxLength(255)
- .HasColumnType("character varying(255)");
-
- b.Property("Fee")
- .HasColumnType("decimal(18,8)");
-
- b.Property("Leverage")
- .HasColumnType("decimal(18,8)");
-
- b.Property("Message")
- .HasColumnType("text");
-
- b.Property("Price")
- .HasColumnType("decimal(18,8)");
-
- b.Property("Quantity")
- .HasColumnType("decimal(18,8)");
-
- b.Property("Status")
- .IsRequired()
- .HasColumnType("text");
-
- b.Property("Ticker")
- .IsRequired()
- .HasColumnType("text");
-
- b.Property("TradeType")
- .IsRequired()
- .HasColumnType("text");
-
- b.Property("UpdatedAt")
- .HasColumnType("timestamp with time zone");
-
- b.HasKey("Id");
-
- b.HasIndex("CreatedAt");
-
- b.HasIndex("Date");
-
- b.HasIndex("ExchangeOrderId");
-
- b.HasIndex("Status");
-
- b.ToTable("Trades");
- });
-
- modelBuilder.Entity("Managing.Infrastructure.Databases.PostgreSql.Entities.TraderEntity", b =>
- {
- b.Property("Id")
- .ValueGeneratedOnAdd()
- .HasColumnType("integer");
-
- NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id"));
-
- b.Property("Address")
- .IsRequired()
- .HasMaxLength(255)
- .HasColumnType("character varying(255)");
-
- b.Property("AverageLoss")
- .HasPrecision(18, 8)
- .HasColumnType("decimal(18,8)");
-
- b.Property("AverageWin")
- .HasPrecision(18, 8)
- .HasColumnType("decimal(18,8)");
-
- b.Property("CreatedAt")
- .HasColumnType("timestamp with time zone");
-
- b.Property("IsBestTrader")
- .HasColumnType("boolean");
-
- b.Property("Pnl")
- .HasPrecision(18, 8)
- .HasColumnType("decimal(18,8)");
-
- b.Property("Roi")
- .HasPrecision(18, 8)
- .HasColumnType("decimal(18,8)");
-
- b.Property("TradeCount")
- .HasColumnType("integer");
-
- b.Property("UpdatedAt")
- .HasColumnType("timestamp with time zone");
-
- b.Property("Winrate")
- .HasColumnType("integer");
-
- b.HasKey("Id");
-
- b.HasIndex("Address");
-
- b.HasIndex("IsBestTrader");
-
- b.HasIndex("Pnl");
-
- b.HasIndex("Roi");
-
- b.HasIndex("Winrate");
-
- b.HasIndex("Address", "IsBestTrader")
- .IsUnique();
-
- b.HasIndex("IsBestTrader", "Roi");
-
- b.HasIndex("IsBestTrader", "Winrate");
-
- b.ToTable("Traders");
- });
-
- modelBuilder.Entity("Managing.Infrastructure.Databases.PostgreSql.Entities.UserEntity", b =>
- {
- b.Property("Id")
- .ValueGeneratedOnAdd()
- .HasColumnType("integer");
-
- NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id"));
-
- b.Property("AgentName")
- .IsRequired()
- .HasMaxLength(255)
- .HasColumnType("character varying(255)");
-
- b.Property("AvatarUrl")
- .HasMaxLength(500)
- .HasColumnType("character varying(500)");
-
- b.Property("Name")
- .IsRequired()
- .HasMaxLength(255)
- .HasColumnType("character varying(255)");
-
- b.Property("TelegramChannel")
- .HasMaxLength(255)
- .HasColumnType("character varying(255)");
-
- b.HasKey("Id");
-
- b.ToTable("Users");
- });
-
- modelBuilder.Entity("Managing.Infrastructure.Databases.PostgreSql.Entities.WorkerEntity", b =>
- {
- b.Property("Id")
- .ValueGeneratedOnAdd()
- .HasColumnType("integer");
-
- NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id"));
-
- b.Property("DelayTicks")
- .HasColumnType("bigint");
-
- b.Property("ExecutionCount")
- .HasColumnType("integer");
-
- b.Property("IsActive")
- .HasColumnType("boolean");
-
- b.Property("LastRunTime")
- .HasColumnType("timestamp with time zone");
-
- b.Property("StartTime")
- .HasColumnType("timestamp with time zone");
-
- b.Property("WorkerType")
- .IsRequired()
- .HasColumnType("text");
-
- b.HasKey("Id");
-
- b.HasIndex("WorkerType")
- .IsUnique();
-
- b.ToTable("Workers");
- });
-
- modelBuilder.Entity("Managing.Infrastructure.Databases.PostgreSql.Entities.AccountEntity", b =>
- {
- b.HasOne("Managing.Infrastructure.Databases.PostgreSql.Entities.UserEntity", "User")
- .WithMany()
- .HasForeignKey("UserId")
- .OnDelete(DeleteBehavior.SetNull);
-
- b.Navigation("User");
- });
-
- modelBuilder.Entity("Managing.Infrastructure.Databases.PostgreSql.Entities.BotEntity", b =>
- {
- b.HasOne("Managing.Infrastructure.Databases.PostgreSql.Entities.UserEntity", "User")
- .WithMany()
- .HasForeignKey("UserId")
- .OnDelete(DeleteBehavior.SetNull)
- .IsRequired();
-
- b.Navigation("User");
- });
-
- modelBuilder.Entity("Managing.Infrastructure.Databases.PostgreSql.Entities.BundleBacktestRequestEntity", b =>
- {
- b.HasOne("Managing.Infrastructure.Databases.PostgreSql.Entities.UserEntity", "User")
- .WithMany()
- .HasForeignKey("UserId")
- .OnDelete(DeleteBehavior.SetNull);
-
- b.Navigation("User");
- });
-
- modelBuilder.Entity("Managing.Infrastructure.Databases.PostgreSql.Entities.GeneticRequestEntity", b =>
- {
- b.HasOne("Managing.Infrastructure.Databases.PostgreSql.Entities.UserEntity", "User")
- .WithMany()
- .HasForeignKey("UserId")
- .OnDelete(DeleteBehavior.SetNull);
-
- b.Navigation("User");
- });
-
- modelBuilder.Entity("Managing.Infrastructure.Databases.PostgreSql.Entities.MoneyManagementEntity", b =>
- {
- b.HasOne("Managing.Infrastructure.Databases.PostgreSql.Entities.UserEntity", "User")
- .WithMany()
- .HasForeignKey("UserId")
- .OnDelete(DeleteBehavior.SetNull);
-
- b.Navigation("User");
- });
-
- modelBuilder.Entity("Managing.Infrastructure.Databases.PostgreSql.Entities.PositionEntity", b =>
- {
- b.HasOne("Managing.Infrastructure.Databases.PostgreSql.Entities.TradeEntity", "OpenTrade")
- .WithMany()
- .HasForeignKey("OpenTradeId")
- .OnDelete(DeleteBehavior.SetNull);
-
- b.HasOne("Managing.Infrastructure.Databases.PostgreSql.Entities.TradeEntity", "StopLossTrade")
- .WithMany()
- .HasForeignKey("StopLossTradeId")
- .OnDelete(DeleteBehavior.SetNull);
-
- b.HasOne("Managing.Infrastructure.Databases.PostgreSql.Entities.TradeEntity", "TakeProfit1Trade")
- .WithMany()
- .HasForeignKey("TakeProfit1TradeId")
- .OnDelete(DeleteBehavior.SetNull);
-
- b.HasOne("Managing.Infrastructure.Databases.PostgreSql.Entities.TradeEntity", "TakeProfit2Trade")
- .WithMany()
- .HasForeignKey("TakeProfit2TradeId")
- .OnDelete(DeleteBehavior.SetNull);
-
- b.Navigation("OpenTrade");
-
- b.Navigation("StopLossTrade");
-
- b.Navigation("TakeProfit1Trade");
-
- b.Navigation("TakeProfit2Trade");
- });
-
- modelBuilder.Entity("Managing.Infrastructure.Databases.PostgreSql.Entities.ScenarioIndicatorEntity", b =>
- {
- b.HasOne("Managing.Infrastructure.Databases.PostgreSql.Entities.IndicatorEntity", "Indicator")
- .WithMany("ScenarioIndicators")
- .HasForeignKey("IndicatorId")
- .OnDelete(DeleteBehavior.Cascade)
- .IsRequired();
-
- b.HasOne("Managing.Infrastructure.Databases.PostgreSql.Entities.ScenarioEntity", "Scenario")
- .WithMany("ScenarioIndicators")
- .HasForeignKey("ScenarioId")
- .OnDelete(DeleteBehavior.Cascade)
- .IsRequired();
-
- b.Navigation("Indicator");
-
- b.Navigation("Scenario");
- });
-
- modelBuilder.Entity("Managing.Infrastructure.Databases.PostgreSql.Entities.IndicatorEntity", b =>
- {
- b.Navigation("ScenarioIndicators");
- });
-
- modelBuilder.Entity("Managing.Infrastructure.Databases.PostgreSql.Entities.ScenarioEntity", b =>
- {
- b.Navigation("ScenarioIndicators");
- });
-#pragma warning restore 612, 618
- }
- }
-}
diff --git a/src/Managing.Infrastructure.Database/Migrations/20250801100607_Init.cs b/src/Managing.Infrastructure.Database/Migrations/20250801100607_Init.cs
deleted file mode 100644
index 4638768..0000000
--- a/src/Managing.Infrastructure.Database/Migrations/20250801100607_Init.cs
+++ /dev/null
@@ -1,1101 +0,0 @@
-using System;
-using Microsoft.EntityFrameworkCore.Migrations;
-using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata;
-
-#nullable disable
-
-namespace Managing.Infrastructure.Databases.Migrations
-{
- ///
- public partial class Init : Migration
- {
- ///
- protected override void Up(MigrationBuilder migrationBuilder)
- {
- migrationBuilder.CreateTable(
- name: "Backtests",
- columns: table => new
- {
- Id = table.Column(type: "integer", nullable: false)
- .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn),
- Identifier = table.Column(type: "character varying(255)", maxLength: 255, nullable: false),
- RequestId = table.Column(type: "character varying(255)", maxLength: 255, nullable: false),
- FinalPnl = table.Column