// 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("20250805133422_UniqueUsername")] partial class UniqueUsername { /// 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("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("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("Identifier") .IsUnique(); b.HasIndex("RequestId"); b.HasIndex("Score"); b.HasIndex("UserName"); 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("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("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("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("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("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("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("Date"); b.HasIndex("Identifier") .IsUnique(); 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("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", "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("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("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.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.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("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("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.HasIndex("Name") .IsUnique(); 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 } } }