From 434f61f2de8303ad0af0f619ee6dcf078b8aa364 Mon Sep 17 00:00:00 2001 From: cryptooda Date: Tue, 5 Aug 2025 04:13:02 +0700 Subject: [PATCH] Clean migration --- .../20250801100607_Init.Designer.cs | 1364 ---------------- .../Migrations/20250801100607_Init.cs | 1101 ------------- ...0250801111224_UpdateUserEntity.Designer.cs | 1363 ---------------- .../20250801111224_UpdateUserEntity.cs | 40 - ...20250803201734_AddTickerToBots.Designer.cs | 1366 ---------------- .../20250803201734_AddTickerToBots.cs | 29 - ...20250803204725_UpdateBotTicker.Designer.cs | 1366 ---------------- .../20250803204725_UpdateBotTicker.cs | 22 - ...03231246_AddAgentSummaryEntity.Designer.cs | 1428 ---------------- .../20250803231246_AddAgentSummaryEntity.cs | 71 - ..._AddMissingAgentSummaryColumns.Designer.cs | 1435 ----------------- ...804200654_AddMissingAgentSummaryColumns.cs | 42 - .../ManagingDbContextModelSnapshot.cs | 1432 ---------------- 13 files changed, 11059 deletions(-) delete mode 100644 src/Managing.Infrastructure.Database/Migrations/20250801100607_Init.Designer.cs delete mode 100644 src/Managing.Infrastructure.Database/Migrations/20250801100607_Init.cs delete mode 100644 src/Managing.Infrastructure.Database/Migrations/20250801111224_UpdateUserEntity.Designer.cs delete mode 100644 src/Managing.Infrastructure.Database/Migrations/20250801111224_UpdateUserEntity.cs delete mode 100644 src/Managing.Infrastructure.Database/Migrations/20250803201734_AddTickerToBots.Designer.cs delete mode 100644 src/Managing.Infrastructure.Database/Migrations/20250803201734_AddTickerToBots.cs delete mode 100644 src/Managing.Infrastructure.Database/Migrations/20250803204725_UpdateBotTicker.Designer.cs delete mode 100644 src/Managing.Infrastructure.Database/Migrations/20250803204725_UpdateBotTicker.cs delete mode 100644 src/Managing.Infrastructure.Database/Migrations/20250803231246_AddAgentSummaryEntity.Designer.cs delete mode 100644 src/Managing.Infrastructure.Database/Migrations/20250803231246_AddAgentSummaryEntity.cs delete mode 100644 src/Managing.Infrastructure.Database/Migrations/20250804200654_AddMissingAgentSummaryColumns.Designer.cs delete mode 100644 src/Managing.Infrastructure.Database/Migrations/20250804200654_AddMissingAgentSummaryColumns.cs delete mode 100644 src/Managing.Infrastructure.Database/Migrations/ManagingDbContextModelSnapshot.cs 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(type: "numeric(18,8)", nullable: false), - WinRate = table.Column(type: "integer", nullable: false), - GrowthPercentage = table.Column(type: "numeric(18,8)", nullable: false), - HodlPercentage = table.Column(type: "numeric(18,8)", nullable: false), - ConfigJson = table.Column(type: "jsonb", nullable: false), - PositionsJson = table.Column(type: "jsonb", nullable: false), - SignalsJson = table.Column(type: "jsonb", nullable: false), - StartDate = table.Column(type: "timestamp with time zone", nullable: false), - EndDate = table.Column(type: "timestamp with time zone", nullable: false), - MoneyManagementJson = table.Column(type: "jsonb", nullable: false), - UserName = table.Column(type: "character varying(255)", maxLength: 255, nullable: false), - StatisticsJson = table.Column(type: "jsonb", nullable: true), - Fees = table.Column(type: "numeric(18,8)", nullable: false), - Score = table.Column(type: "double precision", nullable: false), - ScoreMessage = table.Column(type: "text", maxLength: 1000, nullable: false), - Metadata = table.Column(type: "text", nullable: true), - CreatedAt = table.Column(type: "timestamp with time zone", nullable: false), - UpdatedAt = table.Column(type: "timestamp with time zone", nullable: false) - }, - constraints: table => - { - table.PrimaryKey("PK_Backtests", x => x.Id); - }); - - migrationBuilder.CreateTable( - name: "FundingRates", - columns: table => new - { - Id = table.Column(type: "integer", nullable: false) - .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn), - Ticker = table.Column(type: "integer", nullable: false), - Exchange = table.Column(type: "integer", nullable: false), - Rate = table.Column(type: "numeric(18,8)", precision: 18, scale: 8, nullable: false), - OpenInterest = table.Column(type: "numeric(18,8)", precision: 18, scale: 8, nullable: false), - Date = table.Column(type: "timestamp with time zone", nullable: false), - Direction = table.Column(type: "integer", nullable: false), - CreatedAt = table.Column(type: "timestamp with time zone", nullable: false), - UpdatedAt = table.Column(type: "timestamp with time zone", nullable: false) - }, - constraints: table => - { - table.PrimaryKey("PK_FundingRates", x => x.Id); - }); - - migrationBuilder.CreateTable( - name: "Indicators", - columns: table => new - { - Id = table.Column(type: "integer", nullable: false) - .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn), - Name = table.Column(type: "character varying(255)", maxLength: 255, nullable: false), - Type = table.Column(type: "text", nullable: false), - Timeframe = table.Column(type: "text", nullable: false), - SignalType = table.Column(type: "text", nullable: false), - MinimumHistory = table.Column(type: "integer", nullable: false), - Period = table.Column(type: "integer", nullable: true), - FastPeriods = table.Column(type: "integer", nullable: true), - SlowPeriods = table.Column(type: "integer", nullable: true), - SignalPeriods = table.Column(type: "integer", nullable: true), - Multiplier = table.Column(type: "double precision", nullable: true), - StochPeriods = table.Column(type: "integer", nullable: true), - SmoothPeriods = table.Column(type: "integer", nullable: true), - CyclePeriods = table.Column(type: "integer", nullable: true), - UserName = table.Column(type: "character varying(255)", maxLength: 255, nullable: true), - CreatedAt = table.Column(type: "timestamp with time zone", nullable: false), - UpdatedAt = table.Column(type: "timestamp with time zone", nullable: false) - }, - constraints: table => - { - table.PrimaryKey("PK_Indicators", x => x.Id); - }); - - migrationBuilder.CreateTable( - name: "Scenarios", - columns: table => new - { - Id = table.Column(type: "integer", nullable: false) - .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn), - Name = table.Column(type: "character varying(255)", maxLength: 255, nullable: false), - LoopbackPeriod = table.Column(type: "integer", nullable: false), - UserName = table.Column(type: "character varying(255)", maxLength: 255, nullable: true), - CreatedAt = table.Column(type: "timestamp with time zone", nullable: false), - UpdatedAt = table.Column(type: "timestamp with time zone", nullable: false) - }, - constraints: table => - { - table.PrimaryKey("PK_Scenarios", x => x.Id); - }); - - migrationBuilder.CreateTable( - name: "Signals", - 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), - Direction = table.Column(type: "text", nullable: false), - Confidence = table.Column(type: "text", nullable: false), - Date = table.Column(type: "timestamp with time zone", nullable: false), - Ticker = table.Column(type: "text", nullable: false), - Status = table.Column(type: "text", nullable: false), - Timeframe = table.Column(type: "text", nullable: false), - Type = table.Column(type: "text", nullable: false), - SignalType = table.Column(type: "text", nullable: false), - IndicatorName = table.Column(type: "character varying(255)", maxLength: 255, nullable: false), - UserName = table.Column(type: "character varying(255)", maxLength: 255, nullable: true), - CandleJson = table.Column(type: "text", nullable: true), - CreatedAt = table.Column(type: "timestamp with time zone", nullable: false), - UpdatedAt = table.Column(type: "timestamp with time zone", nullable: false) - }, - constraints: table => - { - table.PrimaryKey("PK_Signals", x => x.Id); - }); - - migrationBuilder.CreateTable( - name: "SpotlightOverviews", - columns: table => new - { - Id = table.Column(type: "integer", nullable: false) - .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn), - Identifier = table.Column(type: "uuid", nullable: false), - DateTime = table.Column(type: "timestamp with time zone", nullable: false), - ScenarioCount = table.Column(type: "integer", nullable: false), - SpotlightsJson = table.Column(type: "jsonb", nullable: false), - CreatedAt = table.Column(type: "timestamp with time zone", nullable: false), - UpdatedAt = table.Column(type: "timestamp with time zone", nullable: false) - }, - constraints: table => - { - table.PrimaryKey("PK_SpotlightOverviews", x => x.Id); - }); - - migrationBuilder.CreateTable( - name: "SynthMinersLeaderboards", - columns: table => new - { - Id = table.Column(type: "uuid", nullable: false), - Asset = table.Column(type: "character varying(32)", maxLength: 32, nullable: false), - TimeIncrement = table.Column(type: "integer", nullable: false), - SignalDate = table.Column(type: "timestamp with time zone", nullable: true), - IsBacktest = table.Column(type: "boolean", nullable: false), - MinersData = table.Column(type: "jsonb", nullable: false), - CacheKey = table.Column(type: "character varying(255)", maxLength: 255, nullable: false), - CreatedAt = table.Column(type: "timestamp with time zone", nullable: false) - }, - constraints: table => - { - table.PrimaryKey("PK_SynthMinersLeaderboards", x => x.Id); - }); - - migrationBuilder.CreateTable( - name: "SynthPredictions", - columns: table => new - { - Id = table.Column(type: "uuid", nullable: false), - Asset = table.Column(type: "character varying(32)", maxLength: 32, nullable: false), - MinerUid = table.Column(type: "integer", nullable: false), - TimeIncrement = table.Column(type: "integer", nullable: false), - TimeLength = table.Column(type: "integer", nullable: false), - SignalDate = table.Column(type: "timestamp with time zone", nullable: true), - IsBacktest = table.Column(type: "boolean", nullable: false), - PredictionData = table.Column(type: "jsonb", nullable: false), - CacheKey = table.Column(type: "character varying(255)", maxLength: 255, nullable: false), - CreatedAt = table.Column(type: "timestamp with time zone", nullable: false) - }, - constraints: table => - { - table.PrimaryKey("PK_SynthPredictions", x => x.Id); - }); - - migrationBuilder.CreateTable( - name: "TopVolumeTickers", - columns: table => new - { - Id = table.Column(type: "integer", nullable: false) - .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn), - Ticker = table.Column(type: "integer", nullable: false), - Date = table.Column(type: "timestamp with time zone", nullable: false), - Volume = table.Column(type: "numeric(18,8)", precision: 18, scale: 8, nullable: false), - Rank = table.Column(type: "integer", nullable: false), - Exchange = table.Column(type: "integer", nullable: false), - CreatedAt = table.Column(type: "timestamp with time zone", nullable: false), - UpdatedAt = table.Column(type: "timestamp with time zone", nullable: false) - }, - constraints: table => - { - table.PrimaryKey("PK_TopVolumeTickers", x => x.Id); - }); - - migrationBuilder.CreateTable( - name: "Traders", - columns: table => new - { - Id = table.Column(type: "integer", nullable: false) - .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn), - Address = table.Column(type: "character varying(255)", maxLength: 255, nullable: false), - Winrate = table.Column(type: "integer", nullable: false), - Pnl = table.Column(type: "numeric(18,8)", precision: 18, scale: 8, nullable: false), - TradeCount = table.Column(type: "integer", nullable: false), - AverageWin = table.Column(type: "numeric(18,8)", precision: 18, scale: 8, nullable: false), - AverageLoss = table.Column(type: "numeric(18,8)", precision: 18, scale: 8, nullable: false), - Roi = table.Column(type: "numeric(18,8)", precision: 18, scale: 8, nullable: false), - IsBestTrader = table.Column(type: "boolean", nullable: false), - CreatedAt = table.Column(type: "timestamp with time zone", nullable: false), - UpdatedAt = table.Column(type: "timestamp with time zone", nullable: false) - }, - constraints: table => - { - table.PrimaryKey("PK_Traders", x => x.Id); - }); - - migrationBuilder.CreateTable( - name: "Trades", - columns: table => new - { - Id = table.Column(type: "integer", nullable: false) - .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn), - Date = table.Column(type: "timestamp with time zone", nullable: false), - Direction = table.Column(type: "text", nullable: false), - Status = table.Column(type: "text", nullable: false), - TradeType = table.Column(type: "text", nullable: false), - Ticker = table.Column(type: "text", nullable: false), - Fee = table.Column(type: "numeric(18,8)", nullable: false), - Quantity = table.Column(type: "numeric(18,8)", nullable: false), - Price = table.Column(type: "numeric(18,8)", nullable: false), - Leverage = table.Column(type: "numeric(18,8)", nullable: false), - ExchangeOrderId = table.Column(type: "character varying(255)", maxLength: 255, nullable: true), - Message = table.Column(type: "text", nullable: true), - CreatedAt = table.Column(type: "timestamp with time zone", nullable: false), - UpdatedAt = table.Column(type: "timestamp with time zone", nullable: false) - }, - constraints: table => - { - table.PrimaryKey("PK_Trades", x => x.Id); - }); - - migrationBuilder.CreateTable( - name: "Users", - columns: table => new - { - Id = table.Column(type: "integer", nullable: false) - .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn), - Name = table.Column(type: "character varying(255)", maxLength: 255, nullable: false), - AgentName = table.Column(type: "character varying(255)", maxLength: 255, nullable: false), - AvatarUrl = table.Column(type: "character varying(500)", maxLength: 500, nullable: true), - TelegramChannel = table.Column(type: "character varying(255)", maxLength: 255, nullable: true) - }, - constraints: table => - { - table.PrimaryKey("PK_Users", x => x.Id); - }); - - migrationBuilder.CreateTable( - name: "Workers", - columns: table => new - { - Id = table.Column(type: "integer", nullable: false) - .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn), - WorkerType = table.Column(type: "text", nullable: false), - StartTime = table.Column(type: "timestamp with time zone", nullable: false), - LastRunTime = table.Column(type: "timestamp with time zone", nullable: true), - ExecutionCount = table.Column(type: "integer", nullable: false), - DelayTicks = table.Column(type: "bigint", nullable: false), - IsActive = table.Column(type: "boolean", nullable: false) - }, - constraints: table => - { - table.PrimaryKey("PK_Workers", x => x.Id); - }); - - migrationBuilder.CreateTable( - name: "ScenarioIndicators", - columns: table => new - { - Id = table.Column(type: "integer", nullable: false) - .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn), - ScenarioId = table.Column(type: "integer", nullable: false), - IndicatorId = table.Column(type: "integer", nullable: false), - CreatedAt = table.Column(type: "timestamp with time zone", nullable: false) - }, - constraints: table => - { - table.PrimaryKey("PK_ScenarioIndicators", x => x.Id); - table.ForeignKey( - name: "FK_ScenarioIndicators_Indicators_IndicatorId", - column: x => x.IndicatorId, - principalTable: "Indicators", - principalColumn: "Id", - onDelete: ReferentialAction.Cascade); - table.ForeignKey( - name: "FK_ScenarioIndicators_Scenarios_ScenarioId", - column: x => x.ScenarioId, - principalTable: "Scenarios", - principalColumn: "Id", - onDelete: ReferentialAction.Cascade); - }); - - migrationBuilder.CreateTable( - name: "Positions", - columns: table => new - { - Identifier = table.Column(type: "uuid", nullable: false), - Date = table.Column(type: "timestamp with time zone", nullable: false), - ProfitAndLoss = table.Column(type: "numeric(18,8)", nullable: false), - OriginDirection = table.Column(type: "text", nullable: false), - Status = table.Column(type: "text", nullable: false), - Ticker = table.Column(type: "text", nullable: false), - Initiator = table.Column(type: "text", nullable: false), - SignalIdentifier = table.Column(type: "character varying(255)", maxLength: 255, nullable: false), - AccountName = table.Column(type: "character varying(255)", maxLength: 255, nullable: false), - UserName = table.Column(type: "character varying(255)", maxLength: 255, nullable: true), - OpenTradeId = table.Column(type: "integer", nullable: true), - StopLossTradeId = table.Column(type: "integer", nullable: true), - TakeProfit1TradeId = table.Column(type: "integer", nullable: true), - TakeProfit2TradeId = table.Column(type: "integer", nullable: true), - MoneyManagementJson = table.Column(type: "text", nullable: true), - CreatedAt = table.Column(type: "timestamp with time zone", nullable: false), - UpdatedAt = table.Column(type: "timestamp with time zone", nullable: false) - }, - constraints: table => - { - table.PrimaryKey("PK_Positions", x => x.Identifier); - table.ForeignKey( - name: "FK_Positions_Trades_OpenTradeId", - column: x => x.OpenTradeId, - principalTable: "Trades", - principalColumn: "Id", - onDelete: ReferentialAction.SetNull); - table.ForeignKey( - name: "FK_Positions_Trades_StopLossTradeId", - column: x => x.StopLossTradeId, - principalTable: "Trades", - principalColumn: "Id", - onDelete: ReferentialAction.SetNull); - table.ForeignKey( - name: "FK_Positions_Trades_TakeProfit1TradeId", - column: x => x.TakeProfit1TradeId, - principalTable: "Trades", - principalColumn: "Id", - onDelete: ReferentialAction.SetNull); - table.ForeignKey( - name: "FK_Positions_Trades_TakeProfit2TradeId", - column: x => x.TakeProfit2TradeId, - principalTable: "Trades", - principalColumn: "Id", - onDelete: ReferentialAction.SetNull); - }); - - migrationBuilder.CreateTable( - name: "Accounts", - columns: table => new - { - Id = table.Column(type: "integer", nullable: false) - .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn), - Name = table.Column(type: "character varying(255)", maxLength: 255, nullable: false), - Exchange = table.Column(type: "text", nullable: false), - Type = table.Column(type: "text", nullable: false), - Key = table.Column(type: "character varying(500)", maxLength: 500, nullable: true), - Secret = table.Column(type: "character varying(500)", maxLength: 500, nullable: true), - UserId = table.Column(type: "integer", nullable: true) - }, - constraints: table => - { - table.PrimaryKey("PK_Accounts", x => x.Id); - table.ForeignKey( - name: "FK_Accounts_Users_UserId", - column: x => x.UserId, - principalTable: "Users", - principalColumn: "Id", - onDelete: ReferentialAction.SetNull); - }); - - migrationBuilder.CreateTable( - name: "Bots", - columns: table => new - { - Identifier = table.Column(type: "uuid", maxLength: 255, nullable: false), - Name = table.Column(type: "character varying(255)", maxLength: 255, nullable: false), - UserId = table.Column(type: "integer", nullable: false), - Status = table.Column(type: "text", nullable: false), - CreateDate = table.Column(type: "timestamp with time zone", nullable: false), - UpdatedAt = table.Column(type: "timestamp with time zone", nullable: false), - StartupTime = table.Column(type: "timestamp with time zone", nullable: false), - TradeWins = table.Column(type: "integer", nullable: false), - TradeLosses = table.Column(type: "integer", nullable: false), - Pnl = table.Column(type: "numeric(18,8)", precision: 18, scale: 8, nullable: false), - Roi = table.Column(type: "numeric(18,8)", precision: 18, scale: 8, nullable: false), - Volume = table.Column(type: "numeric(18,8)", precision: 18, scale: 8, nullable: false), - Fees = table.Column(type: "numeric(18,8)", precision: 18, scale: 8, nullable: false) - }, - constraints: table => - { - table.PrimaryKey("PK_Bots", x => x.Identifier); - table.ForeignKey( - name: "FK_Bots_Users_UserId", - column: x => x.UserId, - principalTable: "Users", - principalColumn: "Id", - onDelete: ReferentialAction.SetNull); - }); - - migrationBuilder.CreateTable( - name: "BundleBacktestRequests", - columns: table => new - { - Id = table.Column(type: "integer", nullable: false) - .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn), - RequestId = table.Column(type: "character varying(255)", maxLength: 255, nullable: false), - UserName = table.Column(type: "character varying(255)", maxLength: 255, nullable: false), - UserId = table.Column(type: "integer", nullable: true), - CreatedAt = table.Column(type: "timestamp with time zone", nullable: false), - CompletedAt = table.Column(type: "timestamp with time zone", nullable: true), - Status = table.Column(type: "text", nullable: false), - BacktestRequestsJson = table.Column(type: "text", nullable: false), - TotalBacktests = table.Column(type: "integer", nullable: false), - CompletedBacktests = table.Column(type: "integer", nullable: false), - FailedBacktests = table.Column(type: "integer", nullable: false), - ErrorMessage = table.Column(type: "text", nullable: true), - ProgressInfo = table.Column(type: "text", nullable: true), - CurrentBacktest = table.Column(type: "character varying(500)", maxLength: 500, nullable: true), - EstimatedTimeRemainingSeconds = table.Column(type: "integer", nullable: true), - Name = table.Column(type: "character varying(255)", maxLength: 255, nullable: false), - ResultsJson = table.Column(type: "jsonb", nullable: false), - UpdatedAt = table.Column(type: "timestamp with time zone", nullable: false) - }, - constraints: table => - { - table.PrimaryKey("PK_BundleBacktestRequests", x => x.Id); - table.ForeignKey( - name: "FK_BundleBacktestRequests_Users_UserId", - column: x => x.UserId, - principalTable: "Users", - principalColumn: "Id", - onDelete: ReferentialAction.SetNull); - }); - - migrationBuilder.CreateTable( - name: "GeneticRequests", - columns: table => new - { - Id = table.Column(type: "integer", nullable: false) - .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn), - RequestId = table.Column(type: "character varying(255)", maxLength: 255, nullable: false), - UserId = table.Column(type: "integer", nullable: true), - CreatedAt = table.Column(type: "timestamp with time zone", nullable: false), - CompletedAt = table.Column(type: "timestamp with time zone", nullable: true), - UpdatedAt = table.Column(type: "timestamp with time zone", nullable: true), - Status = table.Column(type: "character varying(50)", maxLength: 50, nullable: false), - Ticker = table.Column(type: "text", nullable: false), - Timeframe = table.Column(type: "text", nullable: false), - StartDate = table.Column(type: "timestamp with time zone", nullable: false), - EndDate = table.Column(type: "timestamp with time zone", nullable: false), - Balance = table.Column(type: "numeric(18,8)", nullable: false), - PopulationSize = table.Column(type: "integer", nullable: false), - Generations = table.Column(type: "integer", nullable: false), - MutationRate = table.Column(type: "double precision", nullable: false), - SelectionMethod = table.Column(type: "text", nullable: false), - CrossoverMethod = table.Column(type: "text", nullable: false), - MutationMethod = table.Column(type: "text", nullable: false), - ElitismPercentage = table.Column(type: "integer", nullable: false), - MaxTakeProfit = table.Column(type: "double precision", nullable: false), - EligibleIndicatorsJson = table.Column(type: "character varying(2000)", maxLength: 2000, nullable: true), - BestFitness = table.Column(type: "double precision", nullable: true), - BestIndividual = table.Column(type: "character varying(4000)", maxLength: 4000, nullable: true), - ErrorMessage = table.Column(type: "character varying(2000)", maxLength: 2000, nullable: true), - ProgressInfo = table.Column(type: "character varying(4000)", maxLength: 4000, nullable: true), - BestChromosome = table.Column(type: "character varying(4000)", maxLength: 4000, nullable: true), - BestFitnessSoFar = table.Column(type: "double precision", nullable: true), - CurrentGeneration = table.Column(type: "integer", nullable: false) - }, - constraints: table => - { - table.PrimaryKey("PK_GeneticRequests", x => x.Id); - table.ForeignKey( - name: "FK_GeneticRequests_Users_UserId", - column: x => x.UserId, - principalTable: "Users", - principalColumn: "Id", - onDelete: ReferentialAction.SetNull); - }); - - migrationBuilder.CreateTable( - name: "MoneyManagements", - columns: table => new - { - Id = table.Column(type: "integer", nullable: false) - .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn), - Name = table.Column(type: "character varying(255)", maxLength: 255, nullable: false), - Timeframe = table.Column(type: "text", nullable: false), - StopLoss = table.Column(type: "numeric(18,8)", nullable: false), - TakeProfit = table.Column(type: "numeric(18,8)", nullable: false), - Leverage = table.Column(type: "numeric(18,8)", nullable: false), - UserName = table.Column(type: "character varying(255)", maxLength: 255, nullable: true), - UserId = table.Column(type: "integer", nullable: true), - CreatedAt = table.Column(type: "timestamp with time zone", nullable: false), - UpdatedAt = table.Column(type: "timestamp with time zone", nullable: false) - }, - constraints: table => - { - table.PrimaryKey("PK_MoneyManagements", x => x.Id); - table.ForeignKey( - name: "FK_MoneyManagements_Users_UserId", - column: x => x.UserId, - principalTable: "Users", - principalColumn: "Id", - onDelete: ReferentialAction.SetNull); - }); - - migrationBuilder.CreateIndex( - name: "IX_Accounts_Key", - table: "Accounts", - column: "Key"); - - migrationBuilder.CreateIndex( - name: "IX_Accounts_Name", - table: "Accounts", - column: "Name", - unique: true); - - migrationBuilder.CreateIndex( - name: "IX_Accounts_UserId", - table: "Accounts", - column: "UserId"); - - migrationBuilder.CreateIndex( - name: "IX_Backtests_CreatedAt", - table: "Backtests", - column: "CreatedAt"); - - migrationBuilder.CreateIndex( - name: "IX_Backtests_EndDate", - table: "Backtests", - column: "EndDate"); - - migrationBuilder.CreateIndex( - name: "IX_Backtests_FinalPnl", - table: "Backtests", - column: "FinalPnl"); - - migrationBuilder.CreateIndex( - name: "IX_Backtests_Identifier", - table: "Backtests", - column: "Identifier", - unique: true); - - migrationBuilder.CreateIndex( - name: "IX_Backtests_RequestId", - table: "Backtests", - column: "RequestId"); - - migrationBuilder.CreateIndex( - name: "IX_Backtests_RequestId_Score", - table: "Backtests", - columns: new[] { "RequestId", "Score" }); - - migrationBuilder.CreateIndex( - name: "IX_Backtests_Score", - table: "Backtests", - column: "Score"); - - migrationBuilder.CreateIndex( - name: "IX_Backtests_StartDate", - table: "Backtests", - column: "StartDate"); - - migrationBuilder.CreateIndex( - name: "IX_Backtests_UserName", - table: "Backtests", - column: "UserName"); - - migrationBuilder.CreateIndex( - name: "IX_Backtests_UserName_Score", - table: "Backtests", - columns: new[] { "UserName", "Score" }); - - migrationBuilder.CreateIndex( - name: "IX_Backtests_WinRate", - table: "Backtests", - column: "WinRate"); - - migrationBuilder.CreateIndex( - name: "IX_Bots_CreateDate", - table: "Bots", - column: "CreateDate"); - - migrationBuilder.CreateIndex( - name: "IX_Bots_Identifier", - table: "Bots", - column: "Identifier", - unique: true); - - migrationBuilder.CreateIndex( - name: "IX_Bots_Status", - table: "Bots", - column: "Status"); - - migrationBuilder.CreateIndex( - name: "IX_Bots_UserId", - table: "Bots", - column: "UserId"); - - migrationBuilder.CreateIndex( - name: "IX_BundleBacktestRequests_CompletedAt", - table: "BundleBacktestRequests", - column: "CompletedAt"); - - migrationBuilder.CreateIndex( - name: "IX_BundleBacktestRequests_CreatedAt", - table: "BundleBacktestRequests", - column: "CreatedAt"); - - migrationBuilder.CreateIndex( - name: "IX_BundleBacktestRequests_RequestId", - table: "BundleBacktestRequests", - column: "RequestId", - unique: true); - - migrationBuilder.CreateIndex( - name: "IX_BundleBacktestRequests_Status", - table: "BundleBacktestRequests", - column: "Status"); - - migrationBuilder.CreateIndex( - name: "IX_BundleBacktestRequests_UserId", - table: "BundleBacktestRequests", - column: "UserId"); - - migrationBuilder.CreateIndex( - name: "IX_BundleBacktestRequests_UserName", - table: "BundleBacktestRequests", - column: "UserName"); - - migrationBuilder.CreateIndex( - name: "IX_BundleBacktestRequests_UserName_CreatedAt", - table: "BundleBacktestRequests", - columns: new[] { "UserName", "CreatedAt" }); - - migrationBuilder.CreateIndex( - name: "IX_FundingRates_Date", - table: "FundingRates", - column: "Date"); - - migrationBuilder.CreateIndex( - name: "IX_FundingRates_Direction", - table: "FundingRates", - column: "Direction"); - - migrationBuilder.CreateIndex( - name: "IX_FundingRates_Exchange", - table: "FundingRates", - column: "Exchange"); - - migrationBuilder.CreateIndex( - name: "IX_FundingRates_Exchange_Date", - table: "FundingRates", - columns: new[] { "Exchange", "Date" }); - - migrationBuilder.CreateIndex( - name: "IX_FundingRates_Ticker", - table: "FundingRates", - column: "Ticker"); - - migrationBuilder.CreateIndex( - name: "IX_FundingRates_Ticker_Exchange", - table: "FundingRates", - columns: new[] { "Ticker", "Exchange" }); - - migrationBuilder.CreateIndex( - name: "IX_FundingRates_Ticker_Exchange_Date", - table: "FundingRates", - columns: new[] { "Ticker", "Exchange", "Date" }, - unique: true); - - migrationBuilder.CreateIndex( - name: "IX_GeneticRequests_CreatedAt", - table: "GeneticRequests", - column: "CreatedAt"); - - migrationBuilder.CreateIndex( - name: "IX_GeneticRequests_RequestId", - table: "GeneticRequests", - column: "RequestId", - unique: true); - - migrationBuilder.CreateIndex( - name: "IX_GeneticRequests_Status", - table: "GeneticRequests", - column: "Status"); - - migrationBuilder.CreateIndex( - name: "IX_GeneticRequests_UserId", - table: "GeneticRequests", - column: "UserId"); - - migrationBuilder.CreateIndex( - name: "IX_Indicators_CreatedAt", - table: "Indicators", - column: "CreatedAt"); - - migrationBuilder.CreateIndex( - name: "IX_Indicators_Name", - table: "Indicators", - column: "Name"); - - migrationBuilder.CreateIndex( - name: "IX_Indicators_Type", - table: "Indicators", - column: "Type"); - - migrationBuilder.CreateIndex( - name: "IX_Indicators_UserName", - table: "Indicators", - column: "UserName"); - - migrationBuilder.CreateIndex( - name: "IX_Indicators_UserName_Name", - table: "Indicators", - columns: new[] { "UserName", "Name" }); - - migrationBuilder.CreateIndex( - name: "IX_MoneyManagements_Name", - table: "MoneyManagements", - column: "Name"); - - migrationBuilder.CreateIndex( - name: "IX_MoneyManagements_UserId", - table: "MoneyManagements", - column: "UserId"); - - migrationBuilder.CreateIndex( - name: "IX_MoneyManagements_UserName", - table: "MoneyManagements", - column: "UserName"); - - migrationBuilder.CreateIndex( - name: "IX_MoneyManagements_UserName_Name", - table: "MoneyManagements", - columns: new[] { "UserName", "Name" }); - - migrationBuilder.CreateIndex( - name: "IX_Positions_CreatedAt", - table: "Positions", - column: "CreatedAt"); - - migrationBuilder.CreateIndex( - name: "IX_Positions_Date", - table: "Positions", - column: "Date"); - - migrationBuilder.CreateIndex( - name: "IX_Positions_Identifier", - table: "Positions", - column: "Identifier", - unique: true); - - migrationBuilder.CreateIndex( - name: "IX_Positions_Initiator", - table: "Positions", - column: "Initiator"); - - migrationBuilder.CreateIndex( - name: "IX_Positions_OpenTradeId", - table: "Positions", - column: "OpenTradeId"); - - migrationBuilder.CreateIndex( - name: "IX_Positions_Status", - table: "Positions", - column: "Status"); - - migrationBuilder.CreateIndex( - name: "IX_Positions_StopLossTradeId", - table: "Positions", - column: "StopLossTradeId"); - - migrationBuilder.CreateIndex( - name: "IX_Positions_TakeProfit1TradeId", - table: "Positions", - column: "TakeProfit1TradeId"); - - migrationBuilder.CreateIndex( - name: "IX_Positions_TakeProfit2TradeId", - table: "Positions", - column: "TakeProfit2TradeId"); - - migrationBuilder.CreateIndex( - name: "IX_Positions_UserName", - table: "Positions", - column: "UserName"); - - migrationBuilder.CreateIndex( - name: "IX_Positions_UserName_Identifier", - table: "Positions", - columns: new[] { "UserName", "Identifier" }); - - migrationBuilder.CreateIndex( - name: "IX_ScenarioIndicators_IndicatorId", - table: "ScenarioIndicators", - column: "IndicatorId"); - - migrationBuilder.CreateIndex( - name: "IX_ScenarioIndicators_ScenarioId", - table: "ScenarioIndicators", - column: "ScenarioId"); - - migrationBuilder.CreateIndex( - name: "IX_ScenarioIndicators_ScenarioId_IndicatorId", - table: "ScenarioIndicators", - columns: new[] { "ScenarioId", "IndicatorId" }, - unique: true); - - migrationBuilder.CreateIndex( - name: "IX_Scenarios_CreatedAt", - table: "Scenarios", - column: "CreatedAt"); - - migrationBuilder.CreateIndex( - name: "IX_Scenarios_Name", - table: "Scenarios", - column: "Name"); - - migrationBuilder.CreateIndex( - name: "IX_Scenarios_UserName", - table: "Scenarios", - column: "UserName"); - - migrationBuilder.CreateIndex( - name: "IX_Scenarios_UserName_Name", - table: "Scenarios", - columns: new[] { "UserName", "Name" }); - - migrationBuilder.CreateIndex( - name: "IX_Signals_CreatedAt", - table: "Signals", - column: "CreatedAt"); - - migrationBuilder.CreateIndex( - name: "IX_Signals_Date", - table: "Signals", - column: "Date"); - - migrationBuilder.CreateIndex( - name: "IX_Signals_Identifier", - table: "Signals", - column: "Identifier"); - - migrationBuilder.CreateIndex( - name: "IX_Signals_Identifier_Date_UserName", - table: "Signals", - columns: new[] { "Identifier", "Date", "UserName" }, - unique: true); - - migrationBuilder.CreateIndex( - name: "IX_Signals_Status", - table: "Signals", - column: "Status"); - - migrationBuilder.CreateIndex( - name: "IX_Signals_Ticker", - table: "Signals", - column: "Ticker"); - - migrationBuilder.CreateIndex( - name: "IX_Signals_UserName", - table: "Signals", - column: "UserName"); - - migrationBuilder.CreateIndex( - name: "IX_Signals_UserName_Date", - table: "Signals", - columns: new[] { "UserName", "Date" }); - - migrationBuilder.CreateIndex( - name: "IX_SpotlightOverviews_DateTime", - table: "SpotlightOverviews", - column: "DateTime"); - - migrationBuilder.CreateIndex( - name: "IX_SpotlightOverviews_DateTime_ScenarioCount", - table: "SpotlightOverviews", - columns: new[] { "DateTime", "ScenarioCount" }); - - migrationBuilder.CreateIndex( - name: "IX_SpotlightOverviews_Identifier", - table: "SpotlightOverviews", - column: "Identifier", - unique: true); - - migrationBuilder.CreateIndex( - name: "IX_SpotlightOverviews_ScenarioCount", - table: "SpotlightOverviews", - column: "ScenarioCount"); - - migrationBuilder.CreateIndex( - name: "IX_SynthMinersLeaderboards_CacheKey", - table: "SynthMinersLeaderboards", - column: "CacheKey", - unique: true); - - migrationBuilder.CreateIndex( - name: "IX_SynthMinersLeaderboards_CreatedAt", - table: "SynthMinersLeaderboards", - column: "CreatedAt"); - - migrationBuilder.CreateIndex( - name: "IX_SynthPredictions_CacheKey", - table: "SynthPredictions", - column: "CacheKey", - unique: true); - - migrationBuilder.CreateIndex( - name: "IX_SynthPredictions_CreatedAt", - table: "SynthPredictions", - column: "CreatedAt"); - - migrationBuilder.CreateIndex( - name: "IX_TopVolumeTickers_Date", - table: "TopVolumeTickers", - column: "Date"); - - migrationBuilder.CreateIndex( - name: "IX_TopVolumeTickers_Date_Rank", - table: "TopVolumeTickers", - columns: new[] { "Date", "Rank" }); - - migrationBuilder.CreateIndex( - name: "IX_TopVolumeTickers_Exchange", - table: "TopVolumeTickers", - column: "Exchange"); - - migrationBuilder.CreateIndex( - name: "IX_TopVolumeTickers_Exchange_Date", - table: "TopVolumeTickers", - columns: new[] { "Exchange", "Date" }); - - migrationBuilder.CreateIndex( - name: "IX_TopVolumeTickers_Rank", - table: "TopVolumeTickers", - column: "Rank"); - - migrationBuilder.CreateIndex( - name: "IX_TopVolumeTickers_Ticker", - table: "TopVolumeTickers", - column: "Ticker"); - - migrationBuilder.CreateIndex( - name: "IX_Traders_Address", - table: "Traders", - column: "Address"); - - migrationBuilder.CreateIndex( - name: "IX_Traders_Address_IsBestTrader", - table: "Traders", - columns: new[] { "Address", "IsBestTrader" }, - unique: true); - - migrationBuilder.CreateIndex( - name: "IX_Traders_IsBestTrader", - table: "Traders", - column: "IsBestTrader"); - - migrationBuilder.CreateIndex( - name: "IX_Traders_IsBestTrader_Roi", - table: "Traders", - columns: new[] { "IsBestTrader", "Roi" }); - - migrationBuilder.CreateIndex( - name: "IX_Traders_IsBestTrader_Winrate", - table: "Traders", - columns: new[] { "IsBestTrader", "Winrate" }); - - migrationBuilder.CreateIndex( - name: "IX_Traders_Pnl", - table: "Traders", - column: "Pnl"); - - migrationBuilder.CreateIndex( - name: "IX_Traders_Roi", - table: "Traders", - column: "Roi"); - - migrationBuilder.CreateIndex( - name: "IX_Traders_Winrate", - table: "Traders", - column: "Winrate"); - - migrationBuilder.CreateIndex( - name: "IX_Trades_CreatedAt", - table: "Trades", - column: "CreatedAt"); - - migrationBuilder.CreateIndex( - name: "IX_Trades_Date", - table: "Trades", - column: "Date"); - - migrationBuilder.CreateIndex( - name: "IX_Trades_ExchangeOrderId", - table: "Trades", - column: "ExchangeOrderId"); - - migrationBuilder.CreateIndex( - name: "IX_Trades_Status", - table: "Trades", - column: "Status"); - - migrationBuilder.CreateIndex( - name: "IX_Workers_WorkerType", - table: "Workers", - column: "WorkerType", - unique: true); - } - - /// - protected override void Down(MigrationBuilder migrationBuilder) - { - migrationBuilder.DropTable( - name: "Accounts"); - - migrationBuilder.DropTable( - name: "Backtests"); - - migrationBuilder.DropTable( - name: "Bots"); - - migrationBuilder.DropTable( - name: "BundleBacktestRequests"); - - migrationBuilder.DropTable( - name: "FundingRates"); - - migrationBuilder.DropTable( - name: "GeneticRequests"); - - migrationBuilder.DropTable( - name: "MoneyManagements"); - - migrationBuilder.DropTable( - name: "Positions"); - - migrationBuilder.DropTable( - name: "ScenarioIndicators"); - - migrationBuilder.DropTable( - name: "Signals"); - - migrationBuilder.DropTable( - name: "SpotlightOverviews"); - - migrationBuilder.DropTable( - name: "SynthMinersLeaderboards"); - - migrationBuilder.DropTable( - name: "SynthPredictions"); - - migrationBuilder.DropTable( - name: "TopVolumeTickers"); - - migrationBuilder.DropTable( - name: "Traders"); - - migrationBuilder.DropTable( - name: "Workers"); - - migrationBuilder.DropTable( - name: "Users"); - - migrationBuilder.DropTable( - name: "Trades"); - - migrationBuilder.DropTable( - name: "Indicators"); - - migrationBuilder.DropTable( - name: "Scenarios"); - } - } -} diff --git a/src/Managing.Infrastructure.Database/Migrations/20250801111224_UpdateUserEntity.Designer.cs b/src/Managing.Infrastructure.Database/Migrations/20250801111224_UpdateUserEntity.Designer.cs deleted file mode 100644 index b917f0a..0000000 --- a/src/Managing.Infrastructure.Database/Migrations/20250801111224_UpdateUserEntity.Designer.cs +++ /dev/null @@ -1,1363 +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("20250801111224_UpdateUserEntity")] - partial class UpdateUserEntity - { - /// - 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") - .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/20250801111224_UpdateUserEntity.cs b/src/Managing.Infrastructure.Database/Migrations/20250801111224_UpdateUserEntity.cs deleted file mode 100644 index c16c1d7..0000000 --- a/src/Managing.Infrastructure.Database/Migrations/20250801111224_UpdateUserEntity.cs +++ /dev/null @@ -1,40 +0,0 @@ -using Microsoft.EntityFrameworkCore.Migrations; - -#nullable disable - -namespace Managing.Infrastructure.Databases.Migrations -{ - /// - public partial class UpdateUserEntity : Migration - { - /// - protected override void Up(MigrationBuilder migrationBuilder) - { - migrationBuilder.AlterColumn( - name: "AgentName", - table: "Users", - type: "character varying(255)", - maxLength: 255, - nullable: true, - oldClrType: typeof(string), - oldType: "character varying(255)", - oldMaxLength: 255); - } - - /// - protected override void Down(MigrationBuilder migrationBuilder) - { - migrationBuilder.AlterColumn( - name: "AgentName", - table: "Users", - type: "character varying(255)", - maxLength: 255, - nullable: false, - defaultValue: "", - oldClrType: typeof(string), - oldType: "character varying(255)", - oldMaxLength: 255, - oldNullable: true); - } - } -} diff --git a/src/Managing.Infrastructure.Database/Migrations/20250803201734_AddTickerToBots.Designer.cs b/src/Managing.Infrastructure.Database/Migrations/20250803201734_AddTickerToBots.Designer.cs deleted file mode 100644 index 6b0a031..0000000 --- a/src/Managing.Infrastructure.Database/Migrations/20250803201734_AddTickerToBots.Designer.cs +++ /dev/null @@ -1,1366 +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("20250803201734_AddTickerToBots")] - partial class AddTickerToBots - { - /// - 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("Ticker") - .HasColumnType("integer"); - - 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") - .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/20250803201734_AddTickerToBots.cs b/src/Managing.Infrastructure.Database/Migrations/20250803201734_AddTickerToBots.cs deleted file mode 100644 index 3225d19..0000000 --- a/src/Managing.Infrastructure.Database/Migrations/20250803201734_AddTickerToBots.cs +++ /dev/null @@ -1,29 +0,0 @@ -using Microsoft.EntityFrameworkCore.Migrations; - -#nullable disable - -namespace Managing.Infrastructure.Databases.Migrations -{ - /// - public partial class AddTickerToBots : Migration - { - /// - protected override void Up(MigrationBuilder migrationBuilder) - { - migrationBuilder.AddColumn( - name: "Ticker", - table: "Bots", - type: "integer", - nullable: false, - defaultValue: 0); - } - - /// - protected override void Down(MigrationBuilder migrationBuilder) - { - migrationBuilder.DropColumn( - name: "Ticker", - table: "Bots"); - } - } -} diff --git a/src/Managing.Infrastructure.Database/Migrations/20250803204725_UpdateBotTicker.Designer.cs b/src/Managing.Infrastructure.Database/Migrations/20250803204725_UpdateBotTicker.Designer.cs deleted file mode 100644 index da20376..0000000 --- a/src/Managing.Infrastructure.Database/Migrations/20250803204725_UpdateBotTicker.Designer.cs +++ /dev/null @@ -1,1366 +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("20250803204725_UpdateBotTicker")] - partial class UpdateBotTicker - { - /// - 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("Ticker") - .HasColumnType("integer"); - - 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") - .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/20250803204725_UpdateBotTicker.cs b/src/Managing.Infrastructure.Database/Migrations/20250803204725_UpdateBotTicker.cs deleted file mode 100644 index 46c6b49..0000000 --- a/src/Managing.Infrastructure.Database/Migrations/20250803204725_UpdateBotTicker.cs +++ /dev/null @@ -1,22 +0,0 @@ -using Microsoft.EntityFrameworkCore.Migrations; - -#nullable disable - -namespace Managing.Infrastructure.Databases.Migrations -{ - /// - public partial class UpdateBotTicker : Migration - { - /// - protected override void Up(MigrationBuilder migrationBuilder) - { - - } - - /// - protected override void Down(MigrationBuilder migrationBuilder) - { - - } - } -} diff --git a/src/Managing.Infrastructure.Database/Migrations/20250803231246_AddAgentSummaryEntity.Designer.cs b/src/Managing.Infrastructure.Database/Migrations/20250803231246_AddAgentSummaryEntity.Designer.cs deleted file mode 100644 index f3e206a..0000000 --- a/src/Managing.Infrastructure.Database/Migrations/20250803231246_AddAgentSummaryEntity.Designer.cs +++ /dev/null @@ -1,1428 +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("20250803231246_AddAgentSummaryEntity")] - partial class AddAgentSummaryEntity - { - /// - 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.AgentSummaryEntity", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); - - b.Property("AgentName") - .IsRequired() - .HasMaxLength(255) - .HasColumnType("character varying(255)"); - - b.Property("CreatedAt") - .HasColumnType("timestamp with time zone"); - - b.Property("Losses") - .HasColumnType("integer"); - - b.Property("Runtime") - .HasColumnType("timestamp with time zone"); - - b.Property("TotalPnL") - .HasColumnType("decimal(18,8)"); - - b.Property("TotalROI") - .HasColumnType("decimal(18,8)"); - - b.Property("UpdatedAt") - .HasColumnType("timestamp with time zone"); - - b.Property("UserId") - .HasColumnType("integer"); - - b.Property("Wins") - .HasColumnType("integer"); - - b.HasKey("Id"); - - b.HasIndex("AgentName"); - - b.HasIndex("TotalPnL"); - - b.HasIndex("UpdatedAt"); - - b.HasIndex("UserId") - .IsUnique(); - - b.ToTable("AgentSummaries"); - }); - - 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("Ticker") - .HasColumnType("integer"); - - 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") - .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.AgentSummaryEntity", b => - { - b.HasOne("Managing.Infrastructure.Databases.PostgreSql.Entities.UserEntity", "User") - .WithMany() - .HasForeignKey("UserId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - 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/20250803231246_AddAgentSummaryEntity.cs b/src/Managing.Infrastructure.Database/Migrations/20250803231246_AddAgentSummaryEntity.cs deleted file mode 100644 index 2dc1799..0000000 --- a/src/Managing.Infrastructure.Database/Migrations/20250803231246_AddAgentSummaryEntity.cs +++ /dev/null @@ -1,71 +0,0 @@ -using System; -using Microsoft.EntityFrameworkCore.Migrations; -using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata; - -#nullable disable - -namespace Managing.Infrastructure.Databases.Migrations -{ - /// - public partial class AddAgentSummaryEntity : Migration - { - /// - protected override void Up(MigrationBuilder migrationBuilder) - { - migrationBuilder.CreateTable( - name: "AgentSummaries", - columns: table => new - { - Id = table.Column(type: "integer", nullable: false) - .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn), - UserId = table.Column(type: "integer", nullable: false), - AgentName = table.Column(type: "character varying(255)", maxLength: 255, nullable: false), - TotalPnL = table.Column(type: "numeric(18,8)", nullable: false), - TotalROI = table.Column(type: "numeric(18,8)", nullable: false), - Wins = table.Column(type: "integer", nullable: false), - Losses = table.Column(type: "integer", nullable: false), - Runtime = table.Column(type: "timestamp with time zone", nullable: true), - CreatedAt = table.Column(type: "timestamp with time zone", nullable: false), - UpdatedAt = table.Column(type: "timestamp with time zone", nullable: false) - }, - constraints: table => - { - table.PrimaryKey("PK_AgentSummaries", x => x.Id); - table.ForeignKey( - name: "FK_AgentSummaries_Users_UserId", - column: x => x.UserId, - principalTable: "Users", - principalColumn: "Id", - onDelete: ReferentialAction.Cascade); - }); - - migrationBuilder.CreateIndex( - name: "IX_AgentSummaries_AgentName", - table: "AgentSummaries", - column: "AgentName"); - - migrationBuilder.CreateIndex( - name: "IX_AgentSummaries_TotalPnL", - table: "AgentSummaries", - column: "TotalPnL"); - - migrationBuilder.CreateIndex( - name: "IX_AgentSummaries_UpdatedAt", - table: "AgentSummaries", - column: "UpdatedAt"); - - migrationBuilder.CreateIndex( - name: "IX_AgentSummaries_UserId", - table: "AgentSummaries", - column: "UserId", - unique: true); - } - - /// - protected override void Down(MigrationBuilder migrationBuilder) - { - migrationBuilder.DropTable( - name: "AgentSummaries"); - } - } -} diff --git a/src/Managing.Infrastructure.Database/Migrations/20250804200654_AddMissingAgentSummaryColumns.Designer.cs b/src/Managing.Infrastructure.Database/Migrations/20250804200654_AddMissingAgentSummaryColumns.Designer.cs deleted file mode 100644 index 6ab8f23..0000000 --- a/src/Managing.Infrastructure.Database/Migrations/20250804200654_AddMissingAgentSummaryColumns.Designer.cs +++ /dev/null @@ -1,1435 +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("20250804200654_AddMissingAgentSummaryColumns")] - partial class AddMissingAgentSummaryColumns - { - /// - 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.AgentSummaryEntity", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); - - b.Property("ActiveStrategiesCount") - .HasColumnType("integer"); - - b.Property("AgentName") - .IsRequired() - .HasMaxLength(255) - .HasColumnType("character varying(255)"); - - b.Property("CreatedAt") - .HasColumnType("timestamp with time zone"); - - b.Property("Losses") - .HasColumnType("integer"); - - b.Property("Runtime") - .HasColumnType("timestamp with time zone"); - - b.Property("TotalPnL") - .HasColumnType("decimal(18,8)"); - - b.Property("TotalROI") - .HasColumnType("decimal(18,8)"); - - b.Property("TotalVolume") - .HasPrecision(18, 8) - .HasColumnType("numeric(18,8)"); - - b.Property("UpdatedAt") - .HasColumnType("timestamp with time zone"); - - b.Property("UserId") - .HasColumnType("integer"); - - b.Property("Wins") - .HasColumnType("integer"); - - b.HasKey("Id"); - - b.HasIndex("AgentName"); - - b.HasIndex("TotalPnL"); - - b.HasIndex("UpdatedAt"); - - b.HasIndex("UserId") - .IsUnique(); - - b.ToTable("AgentSummaries"); - }); - - 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("Ticker") - .HasColumnType("integer"); - - 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") - .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.AgentSummaryEntity", b => - { - b.HasOne("Managing.Infrastructure.Databases.PostgreSql.Entities.UserEntity", "User") - .WithMany() - .HasForeignKey("UserId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - 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/20250804200654_AddMissingAgentSummaryColumns.cs b/src/Managing.Infrastructure.Database/Migrations/20250804200654_AddMissingAgentSummaryColumns.cs deleted file mode 100644 index 622f0a3..0000000 --- a/src/Managing.Infrastructure.Database/Migrations/20250804200654_AddMissingAgentSummaryColumns.cs +++ /dev/null @@ -1,42 +0,0 @@ -using Microsoft.EntityFrameworkCore.Migrations; - -#nullable disable - -namespace Managing.Infrastructure.Databases.Migrations -{ - /// - public partial class AddMissingAgentSummaryColumns : Migration - { - /// - protected override void Up(MigrationBuilder migrationBuilder) - { - migrationBuilder.AddColumn( - name: "ActiveStrategiesCount", - table: "AgentSummaries", - type: "integer", - nullable: false, - defaultValue: 0); - - migrationBuilder.AddColumn( - name: "TotalVolume", - table: "AgentSummaries", - type: "numeric(18,8)", - precision: 18, - scale: 8, - nullable: false, - defaultValue: 0m); - } - - /// - protected override void Down(MigrationBuilder migrationBuilder) - { - migrationBuilder.DropColumn( - name: "ActiveStrategiesCount", - table: "AgentSummaries"); - - migrationBuilder.DropColumn( - name: "TotalVolume", - table: "AgentSummaries"); - } - } -} diff --git a/src/Managing.Infrastructure.Database/Migrations/ManagingDbContextModelSnapshot.cs b/src/Managing.Infrastructure.Database/Migrations/ManagingDbContextModelSnapshot.cs deleted file mode 100644 index b3a3bbd..0000000 --- a/src/Managing.Infrastructure.Database/Migrations/ManagingDbContextModelSnapshot.cs +++ /dev/null @@ -1,1432 +0,0 @@ -// -using System; -using Managing.Infrastructure.Databases.PostgreSql; -using Microsoft.EntityFrameworkCore; -using Microsoft.EntityFrameworkCore.Infrastructure; -using Microsoft.EntityFrameworkCore.Storage.ValueConversion; -using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata; - -#nullable disable - -namespace Managing.Infrastructure.Databases.Migrations -{ - [DbContext(typeof(ManagingDbContext))] - partial class ManagingDbContextModelSnapshot : ModelSnapshot - { - protected override void BuildModel(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.AgentSummaryEntity", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); - - b.Property("ActiveStrategiesCount") - .HasColumnType("integer"); - - b.Property("AgentName") - .IsRequired() - .HasMaxLength(255) - .HasColumnType("character varying(255)"); - - b.Property("CreatedAt") - .HasColumnType("timestamp with time zone"); - - b.Property("Losses") - .HasColumnType("integer"); - - b.Property("Runtime") - .HasColumnType("timestamp with time zone"); - - b.Property("TotalPnL") - .HasColumnType("decimal(18,8)"); - - b.Property("TotalROI") - .HasColumnType("decimal(18,8)"); - - b.Property("TotalVolume") - .HasPrecision(18, 8) - .HasColumnType("numeric(18,8)"); - - b.Property("UpdatedAt") - .HasColumnType("timestamp with time zone"); - - b.Property("UserId") - .HasColumnType("integer"); - - b.Property("Wins") - .HasColumnType("integer"); - - b.HasKey("Id"); - - b.HasIndex("AgentName"); - - b.HasIndex("TotalPnL"); - - b.HasIndex("UpdatedAt"); - - b.HasIndex("UserId") - .IsUnique(); - - b.ToTable("AgentSummaries"); - }); - - 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("Ticker") - .HasColumnType("integer"); - - 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") - .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.AgentSummaryEntity", b => - { - b.HasOne("Managing.Infrastructure.Databases.PostgreSql.Entities.UserEntity", "User") - .WithMany() - .HasForeignKey("UserId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - 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 - } - } -}