- Introduced MasterBotUserId and MasterAgentName properties to facilitate copy trading functionality. - Updated relevant models, controllers, and database entities to accommodate these new properties. - Enhanced validation logic in StartCopyTradingCommandHandler to ensure proper ownership checks for master strategies.
1730 lines
62 KiB
C#
1730 lines
62 KiB
C#
// <auto-generated />
|
|
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<int>("Id")
|
|
.ValueGeneratedOnAdd()
|
|
.HasColumnType("integer");
|
|
|
|
NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
|
|
|
|
b.Property<string>("Exchange")
|
|
.IsRequired()
|
|
.HasColumnType("text");
|
|
|
|
b.Property<bool>("IsGmxInitialized")
|
|
.ValueGeneratedOnAdd()
|
|
.HasColumnType("boolean")
|
|
.HasDefaultValue(false);
|
|
|
|
b.Property<string>("Key")
|
|
.IsRequired()
|
|
.HasMaxLength(500)
|
|
.HasColumnType("character varying(500)");
|
|
|
|
b.Property<string>("Name")
|
|
.IsRequired()
|
|
.HasMaxLength(255)
|
|
.HasColumnType("character varying(255)");
|
|
|
|
b.Property<string>("Secret")
|
|
.HasMaxLength(500)
|
|
.HasColumnType("character varying(500)");
|
|
|
|
b.Property<string>("Type")
|
|
.IsRequired()
|
|
.HasColumnType("text");
|
|
|
|
b.Property<int>("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<int>("Id")
|
|
.ValueGeneratedOnAdd()
|
|
.HasColumnType("integer");
|
|
|
|
NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
|
|
|
|
b.Property<int>("ActiveStrategiesCount")
|
|
.HasColumnType("integer");
|
|
|
|
b.Property<string>("AgentName")
|
|
.IsRequired()
|
|
.HasMaxLength(255)
|
|
.HasColumnType("character varying(255)");
|
|
|
|
b.Property<int>("BacktestCount")
|
|
.HasColumnType("integer");
|
|
|
|
b.Property<DateTime>("CreatedAt")
|
|
.HasColumnType("timestamp with time zone");
|
|
|
|
b.Property<int>("Losses")
|
|
.HasColumnType("integer");
|
|
|
|
b.Property<decimal>("NetPnL")
|
|
.HasPrecision(18, 8)
|
|
.HasColumnType("numeric(18,8)");
|
|
|
|
b.Property<DateTime?>("Runtime")
|
|
.HasColumnType("timestamp with time zone");
|
|
|
|
b.Property<decimal>("TotalBalance")
|
|
.HasPrecision(18, 8)
|
|
.HasColumnType("numeric(18,8)");
|
|
|
|
b.Property<decimal>("TotalFees")
|
|
.HasPrecision(18, 8)
|
|
.HasColumnType("numeric(18,8)");
|
|
|
|
b.Property<decimal>("TotalPnL")
|
|
.HasColumnType("decimal(18,8)");
|
|
|
|
b.Property<decimal>("TotalROI")
|
|
.HasColumnType("decimal(18,8)");
|
|
|
|
b.Property<decimal>("TotalVolume")
|
|
.HasPrecision(18, 8)
|
|
.HasColumnType("numeric(18,8)");
|
|
|
|
b.Property<DateTime>("UpdatedAt")
|
|
.HasColumnType("timestamp with time zone");
|
|
|
|
b.Property<int>("UserId")
|
|
.HasColumnType("integer");
|
|
|
|
b.Property<int>("Wins")
|
|
.HasColumnType("integer");
|
|
|
|
b.HasKey("Id");
|
|
|
|
b.HasIndex("AgentName")
|
|
.IsUnique();
|
|
|
|
b.HasIndex("TotalPnL");
|
|
|
|
b.HasIndex("UserId")
|
|
.IsUnique();
|
|
|
|
b.ToTable("AgentSummaries");
|
|
});
|
|
|
|
modelBuilder.Entity("Managing.Infrastructure.Databases.PostgreSql.Entities.BacktestEntity", b =>
|
|
{
|
|
b.Property<int>("Id")
|
|
.ValueGeneratedOnAdd()
|
|
.HasColumnType("integer");
|
|
|
|
NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
|
|
|
|
b.Property<string>("ConfigJson")
|
|
.IsRequired()
|
|
.HasColumnType("jsonb");
|
|
|
|
b.Property<DateTime>("CreatedAt")
|
|
.HasColumnType("timestamp with time zone");
|
|
|
|
b.Property<TimeSpan>("Duration")
|
|
.ValueGeneratedOnAdd()
|
|
.HasColumnType("interval")
|
|
.HasDefaultValue(new TimeSpan(0, 0, 0, 0, 0));
|
|
|
|
b.Property<DateTime>("EndDate")
|
|
.HasColumnType("timestamp with time zone");
|
|
|
|
b.Property<decimal>("Fees")
|
|
.HasColumnType("decimal(18,8)");
|
|
|
|
b.Property<decimal>("FinalPnl")
|
|
.HasColumnType("decimal(18,8)");
|
|
|
|
b.Property<decimal>("GrowthPercentage")
|
|
.HasColumnType("decimal(18,8)");
|
|
|
|
b.Property<decimal>("HodlPercentage")
|
|
.HasColumnType("decimal(18,8)");
|
|
|
|
b.Property<string>("Identifier")
|
|
.IsRequired()
|
|
.HasMaxLength(255)
|
|
.HasColumnType("character varying(255)");
|
|
|
|
b.Property<int>("IndicatorsCount")
|
|
.HasColumnType("integer");
|
|
|
|
b.Property<string>("IndicatorsCsv")
|
|
.IsRequired()
|
|
.HasColumnType("text");
|
|
|
|
b.Property<decimal>("InitialBalance")
|
|
.HasColumnType("decimal(18,8)");
|
|
|
|
b.Property<decimal>("MaxDrawdown")
|
|
.ValueGeneratedOnAdd()
|
|
.HasColumnType("decimal(18,8)")
|
|
.HasDefaultValue(0m);
|
|
|
|
b.Property<TimeSpan>("MaxDrawdownRecoveryTime")
|
|
.ValueGeneratedOnAdd()
|
|
.HasColumnType("interval")
|
|
.HasDefaultValue(new TimeSpan(0, 0, 0, 0, 0));
|
|
|
|
b.Property<string>("Metadata")
|
|
.HasColumnType("text");
|
|
|
|
b.Property<string>("MoneyManagementJson")
|
|
.IsRequired()
|
|
.HasColumnType("jsonb");
|
|
|
|
b.Property<string>("Name")
|
|
.IsRequired()
|
|
.HasMaxLength(255)
|
|
.HasColumnType("character varying(255)");
|
|
|
|
b.Property<decimal>("NetPnl")
|
|
.HasColumnType("decimal(18,8)");
|
|
|
|
b.Property<int>("PositionCount")
|
|
.HasColumnType("integer");
|
|
|
|
b.Property<string>("PositionsJson")
|
|
.IsRequired()
|
|
.HasColumnType("jsonb");
|
|
|
|
b.Property<Guid>("RequestId")
|
|
.HasMaxLength(255)
|
|
.HasColumnType("uuid");
|
|
|
|
b.Property<double>("Score")
|
|
.HasColumnType("double precision");
|
|
|
|
b.Property<string>("ScoreMessage")
|
|
.IsRequired()
|
|
.HasMaxLength(1000)
|
|
.HasColumnType("text");
|
|
|
|
b.Property<decimal>("SharpeRatio")
|
|
.ValueGeneratedOnAdd()
|
|
.HasColumnType("decimal(18,8)")
|
|
.HasDefaultValue(0m);
|
|
|
|
b.Property<string>("SignalsJson")
|
|
.IsRequired()
|
|
.HasColumnType("jsonb");
|
|
|
|
b.Property<DateTime>("StartDate")
|
|
.HasColumnType("timestamp with time zone");
|
|
|
|
b.Property<string>("StatisticsJson")
|
|
.HasColumnType("jsonb");
|
|
|
|
b.Property<string>("Ticker")
|
|
.IsRequired()
|
|
.HasMaxLength(32)
|
|
.HasColumnType("character varying(32)");
|
|
|
|
b.Property<int>("Timeframe")
|
|
.HasColumnType("integer");
|
|
|
|
b.Property<DateTime>("UpdatedAt")
|
|
.HasColumnType("timestamp with time zone");
|
|
|
|
b.Property<int>("UserId")
|
|
.HasColumnType("integer");
|
|
|
|
b.Property<int>("WinRate")
|
|
.HasColumnType("integer");
|
|
|
|
b.HasKey("Id");
|
|
|
|
b.HasIndex("Identifier")
|
|
.IsUnique();
|
|
|
|
b.HasIndex("RequestId");
|
|
|
|
b.HasIndex("Score");
|
|
|
|
b.HasIndex("UserId");
|
|
|
|
b.HasIndex("RequestId", "Score");
|
|
|
|
b.HasIndex("UserId", "Name");
|
|
|
|
b.HasIndex("UserId", "Score");
|
|
|
|
b.HasIndex("UserId", "Ticker");
|
|
|
|
b.HasIndex("UserId", "Timeframe");
|
|
|
|
b.ToTable("Backtests");
|
|
});
|
|
|
|
modelBuilder.Entity("Managing.Infrastructure.Databases.PostgreSql.Entities.BotEntity", b =>
|
|
{
|
|
b.Property<Guid>("Identifier")
|
|
.ValueGeneratedOnAdd()
|
|
.HasMaxLength(255)
|
|
.HasColumnType("uuid");
|
|
|
|
b.Property<long>("AccumulatedRunTimeSeconds")
|
|
.HasColumnType("bigint");
|
|
|
|
b.Property<DateTime>("CreateDate")
|
|
.HasColumnType("timestamp with time zone");
|
|
|
|
b.Property<decimal>("Fees")
|
|
.HasPrecision(18, 8)
|
|
.HasColumnType("numeric(18,8)");
|
|
|
|
b.Property<DateTime?>("LastStartTime")
|
|
.HasColumnType("timestamp with time zone");
|
|
|
|
b.Property<DateTime?>("LastStopTime")
|
|
.HasColumnType("timestamp with time zone");
|
|
|
|
b.Property<int>("LongPositionCount")
|
|
.HasColumnType("integer");
|
|
|
|
b.Property<int?>("MasterBotUserId")
|
|
.HasColumnType("integer");
|
|
|
|
b.Property<string>("Name")
|
|
.IsRequired()
|
|
.HasMaxLength(255)
|
|
.HasColumnType("character varying(255)");
|
|
|
|
b.Property<decimal>("NetPnL")
|
|
.HasPrecision(18, 8)
|
|
.HasColumnType("numeric(18,8)");
|
|
|
|
b.Property<decimal>("Pnl")
|
|
.HasPrecision(18, 8)
|
|
.HasColumnType("numeric(18,8)");
|
|
|
|
b.Property<decimal>("Roi")
|
|
.HasPrecision(18, 8)
|
|
.HasColumnType("numeric(18,8)");
|
|
|
|
b.Property<int>("ShortPositionCount")
|
|
.HasColumnType("integer");
|
|
|
|
b.Property<DateTime>("StartupTime")
|
|
.HasColumnType("timestamp with time zone");
|
|
|
|
b.Property<string>("Status")
|
|
.IsRequired()
|
|
.HasColumnType("text");
|
|
|
|
b.Property<int>("Ticker")
|
|
.HasColumnType("integer");
|
|
|
|
b.Property<int>("TradeLosses")
|
|
.HasColumnType("integer");
|
|
|
|
b.Property<int>("TradeWins")
|
|
.HasColumnType("integer");
|
|
|
|
b.Property<DateTime>("UpdatedAt")
|
|
.HasColumnType("timestamp with time zone");
|
|
|
|
b.Property<int>("UserId")
|
|
.HasColumnType("integer");
|
|
|
|
b.Property<decimal>("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<int>("Id")
|
|
.ValueGeneratedOnAdd()
|
|
.HasColumnType("integer");
|
|
|
|
NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
|
|
|
|
b.Property<DateTime?>("CompletedAt")
|
|
.HasColumnType("timestamp with time zone");
|
|
|
|
b.Property<int>("CompletedBacktests")
|
|
.HasColumnType("integer");
|
|
|
|
b.Property<DateTime>("CreatedAt")
|
|
.HasColumnType("timestamp with time zone");
|
|
|
|
b.Property<string>("CurrentBacktest")
|
|
.HasMaxLength(500)
|
|
.HasColumnType("character varying(500)");
|
|
|
|
b.Property<string>("DateTimeRangesJson")
|
|
.IsRequired()
|
|
.HasColumnType("text");
|
|
|
|
b.Property<string>("ErrorMessage")
|
|
.HasColumnType("text");
|
|
|
|
b.Property<int?>("EstimatedTimeRemainingSeconds")
|
|
.HasColumnType("integer");
|
|
|
|
b.Property<int>("FailedBacktests")
|
|
.HasColumnType("integer");
|
|
|
|
b.Property<string>("MoneyManagementVariantsJson")
|
|
.IsRequired()
|
|
.HasColumnType("text");
|
|
|
|
b.Property<string>("Name")
|
|
.IsRequired()
|
|
.HasMaxLength(255)
|
|
.HasColumnType("character varying(255)");
|
|
|
|
b.Property<string>("ProgressInfo")
|
|
.HasColumnType("text");
|
|
|
|
b.Property<Guid>("RequestId")
|
|
.HasMaxLength(255)
|
|
.HasColumnType("uuid");
|
|
|
|
b.Property<string>("ResultsJson")
|
|
.IsRequired()
|
|
.HasColumnType("jsonb");
|
|
|
|
b.Property<string>("Status")
|
|
.IsRequired()
|
|
.HasColumnType("text");
|
|
|
|
b.Property<string>("TickerVariantsJson")
|
|
.IsRequired()
|
|
.HasColumnType("text");
|
|
|
|
b.Property<int>("TotalBacktests")
|
|
.HasColumnType("integer");
|
|
|
|
b.Property<string>("UniversalConfigJson")
|
|
.IsRequired()
|
|
.HasColumnType("text");
|
|
|
|
b.Property<DateTime>("UpdatedAt")
|
|
.HasColumnType("timestamp with time zone");
|
|
|
|
b.Property<int?>("UserId")
|
|
.HasColumnType("integer");
|
|
|
|
b.Property<int>("Version")
|
|
.ValueGeneratedOnAdd()
|
|
.HasColumnType("integer")
|
|
.HasDefaultValue(1);
|
|
|
|
b.HasKey("Id");
|
|
|
|
b.HasIndex("RequestId")
|
|
.IsUnique();
|
|
|
|
b.HasIndex("Status");
|
|
|
|
b.HasIndex("UserId");
|
|
|
|
b.HasIndex("UserId", "CreatedAt");
|
|
|
|
b.HasIndex("UserId", "Name", "Version");
|
|
|
|
b.ToTable("BundleBacktestRequests");
|
|
});
|
|
|
|
modelBuilder.Entity("Managing.Infrastructure.Databases.PostgreSql.Entities.FundingRateEntity", b =>
|
|
{
|
|
b.Property<int>("Id")
|
|
.ValueGeneratedOnAdd()
|
|
.HasColumnType("integer");
|
|
|
|
NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
|
|
|
|
b.Property<DateTime>("CreatedAt")
|
|
.HasColumnType("timestamp with time zone");
|
|
|
|
b.Property<DateTime>("Date")
|
|
.HasColumnType("timestamp with time zone");
|
|
|
|
b.Property<int>("Direction")
|
|
.HasColumnType("integer");
|
|
|
|
b.Property<int>("Exchange")
|
|
.HasColumnType("integer");
|
|
|
|
b.Property<decimal>("OpenInterest")
|
|
.HasPrecision(18, 8)
|
|
.HasColumnType("decimal(18,8)");
|
|
|
|
b.Property<decimal>("Rate")
|
|
.HasPrecision(18, 8)
|
|
.HasColumnType("decimal(18,8)");
|
|
|
|
b.Property<int>("Ticker")
|
|
.HasColumnType("integer");
|
|
|
|
b.Property<DateTime>("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<int>("Id")
|
|
.ValueGeneratedOnAdd()
|
|
.HasColumnType("integer");
|
|
|
|
NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
|
|
|
|
b.Property<decimal>("Balance")
|
|
.HasColumnType("decimal(18,8)");
|
|
|
|
b.Property<string>("BestChromosome")
|
|
.HasMaxLength(4000)
|
|
.HasColumnType("character varying(4000)");
|
|
|
|
b.Property<double?>("BestFitness")
|
|
.HasColumnType("double precision");
|
|
|
|
b.Property<double?>("BestFitnessSoFar")
|
|
.HasColumnType("double precision");
|
|
|
|
b.Property<string>("BestIndividual")
|
|
.HasMaxLength(4000)
|
|
.HasColumnType("character varying(4000)");
|
|
|
|
b.Property<DateTime?>("CompletedAt")
|
|
.HasColumnType("timestamp with time zone");
|
|
|
|
b.Property<DateTime>("CreatedAt")
|
|
.HasColumnType("timestamp with time zone");
|
|
|
|
b.Property<string>("CrossoverMethod")
|
|
.IsRequired()
|
|
.HasColumnType("text");
|
|
|
|
b.Property<int>("CurrentGeneration")
|
|
.HasColumnType("integer");
|
|
|
|
b.Property<string>("EligibleIndicatorsJson")
|
|
.HasMaxLength(2000)
|
|
.HasColumnType("character varying(2000)");
|
|
|
|
b.Property<int>("ElitismPercentage")
|
|
.HasColumnType("integer");
|
|
|
|
b.Property<DateTime>("EndDate")
|
|
.HasColumnType("timestamp with time zone");
|
|
|
|
b.Property<string>("ErrorMessage")
|
|
.HasMaxLength(2000)
|
|
.HasColumnType("character varying(2000)");
|
|
|
|
b.Property<int>("Generations")
|
|
.HasColumnType("integer");
|
|
|
|
b.Property<double>("MaxTakeProfit")
|
|
.HasColumnType("double precision");
|
|
|
|
b.Property<string>("MutationMethod")
|
|
.IsRequired()
|
|
.HasColumnType("text");
|
|
|
|
b.Property<double>("MutationRate")
|
|
.HasColumnType("double precision");
|
|
|
|
b.Property<int>("PopulationSize")
|
|
.HasColumnType("integer");
|
|
|
|
b.Property<string>("ProgressInfo")
|
|
.HasMaxLength(4000)
|
|
.HasColumnType("character varying(4000)");
|
|
|
|
b.Property<string>("RequestId")
|
|
.IsRequired()
|
|
.HasMaxLength(255)
|
|
.HasColumnType("character varying(255)");
|
|
|
|
b.Property<string>("SelectionMethod")
|
|
.IsRequired()
|
|
.HasColumnType("text");
|
|
|
|
b.Property<DateTime>("StartDate")
|
|
.HasColumnType("timestamp with time zone");
|
|
|
|
b.Property<string>("Status")
|
|
.IsRequired()
|
|
.HasMaxLength(50)
|
|
.HasColumnType("character varying(50)");
|
|
|
|
b.Property<string>("Ticker")
|
|
.IsRequired()
|
|
.HasColumnType("text");
|
|
|
|
b.Property<string>("Timeframe")
|
|
.IsRequired()
|
|
.HasColumnType("text");
|
|
|
|
b.Property<DateTime?>("UpdatedAt")
|
|
.HasColumnType("timestamp with time zone");
|
|
|
|
b.Property<int?>("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<int>("Id")
|
|
.ValueGeneratedOnAdd()
|
|
.HasColumnType("integer");
|
|
|
|
NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
|
|
|
|
b.Property<DateTime>("CreatedAt")
|
|
.HasColumnType("timestamp with time zone");
|
|
|
|
b.Property<int?>("CyclePeriods")
|
|
.HasColumnType("integer");
|
|
|
|
b.Property<int?>("FastPeriods")
|
|
.HasColumnType("integer");
|
|
|
|
b.Property<int>("MinimumHistory")
|
|
.HasColumnType("integer");
|
|
|
|
b.Property<double?>("Multiplier")
|
|
.HasColumnType("double precision");
|
|
|
|
b.Property<string>("Name")
|
|
.IsRequired()
|
|
.HasMaxLength(255)
|
|
.HasColumnType("character varying(255)");
|
|
|
|
b.Property<int?>("Period")
|
|
.HasColumnType("integer");
|
|
|
|
b.Property<int?>("SignalPeriods")
|
|
.HasColumnType("integer");
|
|
|
|
b.Property<string>("SignalType")
|
|
.IsRequired()
|
|
.HasColumnType("text");
|
|
|
|
b.Property<int?>("SlowPeriods")
|
|
.HasColumnType("integer");
|
|
|
|
b.Property<int?>("SmoothPeriods")
|
|
.HasColumnType("integer");
|
|
|
|
b.Property<int?>("StochPeriods")
|
|
.HasColumnType("integer");
|
|
|
|
b.Property<string>("Timeframe")
|
|
.IsRequired()
|
|
.HasColumnType("text");
|
|
|
|
b.Property<string>("Type")
|
|
.IsRequired()
|
|
.HasColumnType("text");
|
|
|
|
b.Property<DateTime>("UpdatedAt")
|
|
.HasColumnType("timestamp with time zone");
|
|
|
|
b.Property<int?>("UserId")
|
|
.HasColumnType("integer");
|
|
|
|
b.HasKey("Id");
|
|
|
|
b.HasIndex("UserId");
|
|
|
|
b.HasIndex("UserId", "Name");
|
|
|
|
b.ToTable("Indicators");
|
|
});
|
|
|
|
modelBuilder.Entity("Managing.Infrastructure.Databases.PostgreSql.Entities.JobEntity", b =>
|
|
{
|
|
b.Property<Guid>("Id")
|
|
.HasColumnType("uuid");
|
|
|
|
b.Property<string>("AssignedWorkerId")
|
|
.HasMaxLength(255)
|
|
.HasColumnType("character varying(255)");
|
|
|
|
b.Property<Guid?>("BundleRequestId")
|
|
.HasColumnType("uuid");
|
|
|
|
b.Property<DateTime?>("CompletedAt")
|
|
.HasColumnType("timestamp with time zone");
|
|
|
|
b.Property<string>("ConfigJson")
|
|
.IsRequired()
|
|
.HasColumnType("jsonb");
|
|
|
|
b.Property<DateTime>("CreatedAt")
|
|
.HasColumnType("timestamp with time zone");
|
|
|
|
b.Property<DateTime>("EndDate")
|
|
.HasColumnType("timestamp with time zone");
|
|
|
|
b.Property<string>("ErrorMessage")
|
|
.HasColumnType("text");
|
|
|
|
b.Property<int?>("FailureCategory")
|
|
.HasColumnType("integer");
|
|
|
|
b.Property<string>("GeneticRequestId")
|
|
.HasMaxLength(255)
|
|
.HasColumnType("character varying(255)");
|
|
|
|
b.Property<bool>("IsRetryable")
|
|
.HasColumnType("boolean");
|
|
|
|
b.Property<int>("JobType")
|
|
.ValueGeneratedOnAdd()
|
|
.HasColumnType("integer")
|
|
.HasDefaultValue(0);
|
|
|
|
b.Property<DateTime?>("LastHeartbeat")
|
|
.HasColumnType("timestamp with time zone");
|
|
|
|
b.Property<int>("MaxRetries")
|
|
.HasColumnType("integer");
|
|
|
|
b.Property<int>("Priority")
|
|
.ValueGeneratedOnAdd()
|
|
.HasColumnType("integer")
|
|
.HasDefaultValue(0);
|
|
|
|
b.Property<int>("ProgressPercentage")
|
|
.ValueGeneratedOnAdd()
|
|
.HasColumnType("integer")
|
|
.HasDefaultValue(0);
|
|
|
|
b.Property<string>("RequestId")
|
|
.HasMaxLength(255)
|
|
.HasColumnType("character varying(255)");
|
|
|
|
b.Property<string>("ResultJson")
|
|
.HasColumnType("jsonb");
|
|
|
|
b.Property<DateTime?>("RetryAfter")
|
|
.HasColumnType("timestamp with time zone");
|
|
|
|
b.Property<int>("RetryCount")
|
|
.HasColumnType("integer");
|
|
|
|
b.Property<DateTime>("StartDate")
|
|
.HasColumnType("timestamp with time zone");
|
|
|
|
b.Property<DateTime?>("StartedAt")
|
|
.HasColumnType("timestamp with time zone");
|
|
|
|
b.Property<int>("Status")
|
|
.HasColumnType("integer");
|
|
|
|
b.Property<int>("UserId")
|
|
.HasColumnType("integer");
|
|
|
|
b.HasKey("Id");
|
|
|
|
b.HasIndex("BundleRequestId")
|
|
.HasDatabaseName("idx_bundle_request");
|
|
|
|
b.HasIndex("GeneticRequestId")
|
|
.HasDatabaseName("idx_genetic_request");
|
|
|
|
b.HasIndex("AssignedWorkerId", "Status")
|
|
.HasDatabaseName("idx_assigned_worker");
|
|
|
|
b.HasIndex("UserId", "Status")
|
|
.HasDatabaseName("idx_user_status");
|
|
|
|
b.HasIndex("Status", "JobType", "Priority", "CreatedAt")
|
|
.HasDatabaseName("idx_status_jobtype_priority_created");
|
|
|
|
b.ToTable("Jobs", (string)null);
|
|
});
|
|
|
|
modelBuilder.Entity("Managing.Infrastructure.Databases.PostgreSql.Entities.MoneyManagementEntity", b =>
|
|
{
|
|
b.Property<int>("Id")
|
|
.ValueGeneratedOnAdd()
|
|
.HasColumnType("integer");
|
|
|
|
NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
|
|
|
|
b.Property<DateTime>("CreatedAt")
|
|
.HasColumnType("timestamp with time zone");
|
|
|
|
b.Property<decimal>("Leverage")
|
|
.HasColumnType("decimal(18,8)");
|
|
|
|
b.Property<string>("Name")
|
|
.IsRequired()
|
|
.HasMaxLength(255)
|
|
.HasColumnType("character varying(255)");
|
|
|
|
b.Property<decimal>("StopLoss")
|
|
.HasColumnType("decimal(18,8)");
|
|
|
|
b.Property<decimal>("TakeProfit")
|
|
.HasColumnType("decimal(18,8)");
|
|
|
|
b.Property<string>("Timeframe")
|
|
.IsRequired()
|
|
.HasColumnType("text");
|
|
|
|
b.Property<DateTime>("UpdatedAt")
|
|
.HasColumnType("timestamp with time zone");
|
|
|
|
b.Property<int?>("UserId")
|
|
.HasColumnType("integer");
|
|
|
|
b.Property<string>("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<Guid>("Identifier")
|
|
.ValueGeneratedOnAdd()
|
|
.HasColumnType("uuid");
|
|
|
|
b.Property<int>("AccountId")
|
|
.HasColumnType("integer");
|
|
|
|
b.Property<DateTime>("CreatedAt")
|
|
.HasColumnType("timestamp with time zone");
|
|
|
|
b.Property<DateTime>("Date")
|
|
.HasColumnType("timestamp with time zone");
|
|
|
|
b.Property<decimal>("GasFees")
|
|
.HasColumnType("decimal(18,8)");
|
|
|
|
b.Property<string>("Initiator")
|
|
.IsRequired()
|
|
.HasColumnType("text");
|
|
|
|
b.Property<Guid>("InitiatorIdentifier")
|
|
.HasColumnType("uuid");
|
|
|
|
b.Property<string>("MoneyManagementJson")
|
|
.HasColumnType("text");
|
|
|
|
b.Property<decimal>("NetPnL")
|
|
.HasColumnType("decimal(18,8)");
|
|
|
|
b.Property<int?>("OpenTradeId")
|
|
.HasColumnType("integer");
|
|
|
|
b.Property<string>("OriginDirection")
|
|
.IsRequired()
|
|
.HasColumnType("text");
|
|
|
|
b.Property<decimal>("ProfitAndLoss")
|
|
.HasColumnType("decimal(18,8)");
|
|
|
|
b.Property<string>("SignalIdentifier")
|
|
.IsRequired()
|
|
.HasMaxLength(255)
|
|
.HasColumnType("character varying(255)");
|
|
|
|
b.Property<string>("Status")
|
|
.IsRequired()
|
|
.HasColumnType("text");
|
|
|
|
b.Property<int?>("StopLossTradeId")
|
|
.HasColumnType("integer");
|
|
|
|
b.Property<int?>("TakeProfit1TradeId")
|
|
.HasColumnType("integer");
|
|
|
|
b.Property<int?>("TakeProfit2TradeId")
|
|
.HasColumnType("integer");
|
|
|
|
b.Property<string>("Ticker")
|
|
.IsRequired()
|
|
.HasColumnType("text");
|
|
|
|
b.Property<decimal>("UiFees")
|
|
.HasColumnType("decimal(18,8)");
|
|
|
|
b.Property<DateTime>("UpdatedAt")
|
|
.HasColumnType("timestamp with time zone");
|
|
|
|
b.Property<int?>("UserId")
|
|
.HasColumnType("integer");
|
|
|
|
b.HasKey("Identifier");
|
|
|
|
b.HasIndex("Identifier")
|
|
.IsUnique();
|
|
|
|
b.HasIndex("InitiatorIdentifier");
|
|
|
|
b.HasIndex("OpenTradeId");
|
|
|
|
b.HasIndex("Status");
|
|
|
|
b.HasIndex("StopLossTradeId");
|
|
|
|
b.HasIndex("TakeProfit1TradeId");
|
|
|
|
b.HasIndex("TakeProfit2TradeId");
|
|
|
|
b.HasIndex("UserId");
|
|
|
|
b.HasIndex("UserId", "Identifier");
|
|
|
|
b.ToTable("Positions");
|
|
});
|
|
|
|
modelBuilder.Entity("Managing.Infrastructure.Databases.PostgreSql.Entities.ScenarioEntity", b =>
|
|
{
|
|
b.Property<int>("Id")
|
|
.ValueGeneratedOnAdd()
|
|
.HasColumnType("integer");
|
|
|
|
NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
|
|
|
|
b.Property<DateTime>("CreatedAt")
|
|
.HasColumnType("timestamp with time zone");
|
|
|
|
b.Property<int>("LoopbackPeriod")
|
|
.HasColumnType("integer");
|
|
|
|
b.Property<string>("Name")
|
|
.IsRequired()
|
|
.HasMaxLength(255)
|
|
.HasColumnType("character varying(255)");
|
|
|
|
b.Property<DateTime>("UpdatedAt")
|
|
.HasColumnType("timestamp with time zone");
|
|
|
|
b.Property<int>("UserId")
|
|
.HasColumnType("integer");
|
|
|
|
b.HasKey("Id");
|
|
|
|
b.HasIndex("UserId");
|
|
|
|
b.HasIndex("UserId", "Name");
|
|
|
|
b.ToTable("Scenarios");
|
|
});
|
|
|
|
modelBuilder.Entity("Managing.Infrastructure.Databases.PostgreSql.Entities.ScenarioIndicatorEntity", b =>
|
|
{
|
|
b.Property<int>("Id")
|
|
.ValueGeneratedOnAdd()
|
|
.HasColumnType("integer");
|
|
|
|
NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
|
|
|
|
b.Property<DateTime>("CreatedAt")
|
|
.HasColumnType("timestamp with time zone");
|
|
|
|
b.Property<int>("IndicatorId")
|
|
.HasColumnType("integer");
|
|
|
|
b.Property<int>("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<int>("Id")
|
|
.ValueGeneratedOnAdd()
|
|
.HasColumnType("integer");
|
|
|
|
NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
|
|
|
|
b.Property<string>("CandleJson")
|
|
.HasColumnType("text");
|
|
|
|
b.Property<string>("Confidence")
|
|
.IsRequired()
|
|
.HasColumnType("text");
|
|
|
|
b.Property<DateTime>("CreatedAt")
|
|
.HasColumnType("timestamp with time zone");
|
|
|
|
b.Property<DateTime>("Date")
|
|
.HasColumnType("timestamp with time zone");
|
|
|
|
b.Property<string>("Direction")
|
|
.IsRequired()
|
|
.HasColumnType("text");
|
|
|
|
b.Property<string>("Identifier")
|
|
.IsRequired()
|
|
.HasMaxLength(255)
|
|
.HasColumnType("character varying(255)");
|
|
|
|
b.Property<string>("IndicatorName")
|
|
.IsRequired()
|
|
.HasMaxLength(255)
|
|
.HasColumnType("character varying(255)");
|
|
|
|
b.Property<string>("SignalType")
|
|
.IsRequired()
|
|
.HasColumnType("text");
|
|
|
|
b.Property<string>("Status")
|
|
.IsRequired()
|
|
.HasColumnType("text");
|
|
|
|
b.Property<string>("Ticker")
|
|
.IsRequired()
|
|
.HasColumnType("text");
|
|
|
|
b.Property<string>("Timeframe")
|
|
.IsRequired()
|
|
.HasColumnType("text");
|
|
|
|
b.Property<string>("Type")
|
|
.IsRequired()
|
|
.HasColumnType("text");
|
|
|
|
b.Property<DateTime>("UpdatedAt")
|
|
.HasColumnType("timestamp with time zone");
|
|
|
|
b.Property<int?>("UserId")
|
|
.HasColumnType("integer");
|
|
|
|
b.HasKey("Id");
|
|
|
|
b.HasIndex("Date");
|
|
|
|
b.HasIndex("Identifier");
|
|
|
|
b.HasIndex("Status");
|
|
|
|
b.HasIndex("Ticker");
|
|
|
|
b.HasIndex("UserId");
|
|
|
|
b.HasIndex("UserId", "Date");
|
|
|
|
b.HasIndex("Identifier", "Date", "UserId")
|
|
.IsUnique();
|
|
|
|
b.ToTable("Signals");
|
|
});
|
|
|
|
modelBuilder.Entity("Managing.Infrastructure.Databases.PostgreSql.Entities.SpotlightOverviewEntity", b =>
|
|
{
|
|
b.Property<int>("Id")
|
|
.ValueGeneratedOnAdd()
|
|
.HasColumnType("integer");
|
|
|
|
NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
|
|
|
|
b.Property<DateTime>("CreatedAt")
|
|
.HasColumnType("timestamp with time zone");
|
|
|
|
b.Property<DateTime>("DateTime")
|
|
.HasColumnType("timestamp with time zone");
|
|
|
|
b.Property<Guid>("Identifier")
|
|
.HasColumnType("uuid");
|
|
|
|
b.Property<int>("ScenarioCount")
|
|
.HasColumnType("integer");
|
|
|
|
b.Property<string>("SpotlightsJson")
|
|
.IsRequired()
|
|
.HasColumnType("jsonb");
|
|
|
|
b.Property<DateTime>("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<Guid>("Id")
|
|
.ValueGeneratedOnAdd()
|
|
.HasColumnType("uuid");
|
|
|
|
b.Property<string>("Asset")
|
|
.IsRequired()
|
|
.HasMaxLength(32)
|
|
.HasColumnType("character varying(32)");
|
|
|
|
b.Property<string>("CacheKey")
|
|
.IsRequired()
|
|
.HasMaxLength(255)
|
|
.HasColumnType("character varying(255)");
|
|
|
|
b.Property<DateTime>("CreatedAt")
|
|
.HasColumnType("timestamp with time zone");
|
|
|
|
b.Property<bool>("IsBacktest")
|
|
.HasColumnType("boolean");
|
|
|
|
b.Property<string>("MinersData")
|
|
.IsRequired()
|
|
.HasColumnType("jsonb");
|
|
|
|
b.Property<DateTime?>("SignalDate")
|
|
.HasColumnType("timestamp with time zone");
|
|
|
|
b.Property<int>("TimeIncrement")
|
|
.HasColumnType("integer");
|
|
|
|
b.HasKey("Id");
|
|
|
|
b.HasIndex("CacheKey")
|
|
.IsUnique();
|
|
|
|
b.ToTable("SynthMinersLeaderboards");
|
|
});
|
|
|
|
modelBuilder.Entity("Managing.Infrastructure.Databases.PostgreSql.Entities.SynthPredictionEntity", b =>
|
|
{
|
|
b.Property<Guid>("Id")
|
|
.ValueGeneratedOnAdd()
|
|
.HasColumnType("uuid");
|
|
|
|
b.Property<string>("Asset")
|
|
.IsRequired()
|
|
.HasMaxLength(32)
|
|
.HasColumnType("character varying(32)");
|
|
|
|
b.Property<string>("CacheKey")
|
|
.IsRequired()
|
|
.HasMaxLength(255)
|
|
.HasColumnType("character varying(255)");
|
|
|
|
b.Property<DateTime>("CreatedAt")
|
|
.HasColumnType("timestamp with time zone");
|
|
|
|
b.Property<bool>("IsBacktest")
|
|
.HasColumnType("boolean");
|
|
|
|
b.Property<int>("MinerUid")
|
|
.HasColumnType("integer");
|
|
|
|
b.Property<string>("PredictionData")
|
|
.IsRequired()
|
|
.HasColumnType("jsonb");
|
|
|
|
b.Property<DateTime?>("SignalDate")
|
|
.HasColumnType("timestamp with time zone");
|
|
|
|
b.Property<int>("TimeIncrement")
|
|
.HasColumnType("integer");
|
|
|
|
b.Property<int>("TimeLength")
|
|
.HasColumnType("integer");
|
|
|
|
b.HasKey("Id");
|
|
|
|
b.HasIndex("CacheKey")
|
|
.IsUnique();
|
|
|
|
b.ToTable("SynthPredictions");
|
|
});
|
|
|
|
modelBuilder.Entity("Managing.Infrastructure.Databases.PostgreSql.Entities.TopVolumeTickerEntity", b =>
|
|
{
|
|
b.Property<int>("Id")
|
|
.ValueGeneratedOnAdd()
|
|
.HasColumnType("integer");
|
|
|
|
NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
|
|
|
|
b.Property<DateTime>("CreatedAt")
|
|
.HasColumnType("timestamp with time zone");
|
|
|
|
b.Property<DateTime>("Date")
|
|
.HasColumnType("timestamp with time zone");
|
|
|
|
b.Property<int>("Exchange")
|
|
.HasColumnType("integer");
|
|
|
|
b.Property<int>("Rank")
|
|
.HasColumnType("integer");
|
|
|
|
b.Property<int>("Ticker")
|
|
.HasColumnType("integer");
|
|
|
|
b.Property<DateTime>("UpdatedAt")
|
|
.HasColumnType("timestamp with time zone");
|
|
|
|
b.Property<decimal>("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<int>("Id")
|
|
.ValueGeneratedOnAdd()
|
|
.HasColumnType("integer");
|
|
|
|
NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
|
|
|
|
b.Property<DateTime>("CreatedAt")
|
|
.HasColumnType("timestamp with time zone");
|
|
|
|
b.Property<DateTime>("Date")
|
|
.HasColumnType("timestamp with time zone");
|
|
|
|
b.Property<string>("Direction")
|
|
.IsRequired()
|
|
.HasColumnType("text");
|
|
|
|
b.Property<string>("ExchangeOrderId")
|
|
.HasMaxLength(255)
|
|
.HasColumnType("character varying(255)");
|
|
|
|
b.Property<decimal>("Leverage")
|
|
.HasColumnType("decimal(18,8)");
|
|
|
|
b.Property<string>("Message")
|
|
.HasColumnType("text");
|
|
|
|
b.Property<decimal>("Price")
|
|
.HasColumnType("decimal(18,8)");
|
|
|
|
b.Property<decimal>("Quantity")
|
|
.HasColumnType("decimal(18,8)");
|
|
|
|
b.Property<string>("Status")
|
|
.IsRequired()
|
|
.HasColumnType("text");
|
|
|
|
b.Property<string>("Ticker")
|
|
.IsRequired()
|
|
.HasColumnType("text");
|
|
|
|
b.Property<string>("TradeType")
|
|
.IsRequired()
|
|
.HasColumnType("text");
|
|
|
|
b.Property<DateTime>("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<int>("Id")
|
|
.ValueGeneratedOnAdd()
|
|
.HasColumnType("integer");
|
|
|
|
NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
|
|
|
|
b.Property<string>("Address")
|
|
.IsRequired()
|
|
.HasMaxLength(255)
|
|
.HasColumnType("character varying(255)");
|
|
|
|
b.Property<decimal>("AverageLoss")
|
|
.HasPrecision(18, 8)
|
|
.HasColumnType("decimal(18,8)");
|
|
|
|
b.Property<decimal>("AverageWin")
|
|
.HasPrecision(18, 8)
|
|
.HasColumnType("decimal(18,8)");
|
|
|
|
b.Property<DateTime>("CreatedAt")
|
|
.HasColumnType("timestamp with time zone");
|
|
|
|
b.Property<bool>("IsBestTrader")
|
|
.HasColumnType("boolean");
|
|
|
|
b.Property<decimal>("Pnl")
|
|
.HasPrecision(18, 8)
|
|
.HasColumnType("decimal(18,8)");
|
|
|
|
b.Property<decimal>("Roi")
|
|
.HasPrecision(18, 8)
|
|
.HasColumnType("decimal(18,8)");
|
|
|
|
b.Property<int>("TradeCount")
|
|
.HasColumnType("integer");
|
|
|
|
b.Property<DateTime>("UpdatedAt")
|
|
.HasColumnType("timestamp with time zone");
|
|
|
|
b.Property<int>("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<int>("Id")
|
|
.ValueGeneratedOnAdd()
|
|
.HasColumnType("integer");
|
|
|
|
NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
|
|
|
|
b.Property<string>("AgentName")
|
|
.HasMaxLength(255)
|
|
.HasColumnType("character varying(255)");
|
|
|
|
b.Property<string>("AvatarUrl")
|
|
.HasMaxLength(500)
|
|
.HasColumnType("character varying(500)");
|
|
|
|
b.Property<bool>("IsAdmin")
|
|
.HasColumnType("boolean");
|
|
|
|
b.Property<DateTimeOffset?>("LastConnectionDate")
|
|
.HasColumnType("timestamp with time zone");
|
|
|
|
b.Property<string>("Name")
|
|
.IsRequired()
|
|
.HasMaxLength(255)
|
|
.HasColumnType("character varying(255)");
|
|
|
|
b.Property<string>("OwnerWalletAddress")
|
|
.HasColumnType("text");
|
|
|
|
b.Property<string>("TelegramChannel")
|
|
.HasMaxLength(255)
|
|
.HasColumnType("character varying(255)");
|
|
|
|
b.HasKey("Id");
|
|
|
|
b.HasIndex("AgentName");
|
|
|
|
b.HasIndex("Name")
|
|
.IsUnique();
|
|
|
|
b.ToTable("Users");
|
|
});
|
|
|
|
modelBuilder.Entity("Managing.Infrastructure.Databases.PostgreSql.Entities.WhitelistAccountEntity", b =>
|
|
{
|
|
b.Property<int>("Id")
|
|
.ValueGeneratedOnAdd()
|
|
.HasColumnType("integer");
|
|
|
|
NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
|
|
|
|
b.Property<DateTime>("CreatedAt")
|
|
.HasColumnType("timestamp with time zone");
|
|
|
|
b.Property<string>("EmbeddedWallet")
|
|
.IsRequired()
|
|
.HasMaxLength(42)
|
|
.HasColumnType("character varying(42)");
|
|
|
|
b.Property<string>("ExternalEthereumAccount")
|
|
.HasMaxLength(42)
|
|
.HasColumnType("character varying(42)");
|
|
|
|
b.Property<bool>("IsWhitelisted")
|
|
.ValueGeneratedOnAdd()
|
|
.HasColumnType("boolean")
|
|
.HasDefaultValue(false);
|
|
|
|
b.Property<DateTime>("PrivyCreationDate")
|
|
.HasColumnType("timestamp with time zone");
|
|
|
|
b.Property<string>("PrivyId")
|
|
.IsRequired()
|
|
.HasMaxLength(255)
|
|
.HasColumnType("character varying(255)");
|
|
|
|
b.Property<string>("TwitterAccount")
|
|
.HasMaxLength(255)
|
|
.HasColumnType("character varying(255)");
|
|
|
|
b.Property<DateTime?>("UpdatedAt")
|
|
.HasColumnType("timestamp with time zone");
|
|
|
|
b.HasKey("Id");
|
|
|
|
b.HasIndex("CreatedAt");
|
|
|
|
b.HasIndex("EmbeddedWallet")
|
|
.IsUnique();
|
|
|
|
b.HasIndex("ExternalEthereumAccount");
|
|
|
|
b.HasIndex("PrivyId")
|
|
.IsUnique();
|
|
|
|
b.HasIndex("TwitterAccount");
|
|
|
|
b.ToTable("WhitelistAccounts");
|
|
});
|
|
|
|
modelBuilder.Entity("Managing.Infrastructure.Databases.PostgreSql.Entities.WorkerEntity", b =>
|
|
{
|
|
b.Property<int>("Id")
|
|
.ValueGeneratedOnAdd()
|
|
.HasColumnType("integer");
|
|
|
|
NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
|
|
|
|
b.Property<long>("DelayTicks")
|
|
.HasColumnType("bigint");
|
|
|
|
b.Property<int>("ExecutionCount")
|
|
.HasColumnType("integer");
|
|
|
|
b.Property<bool>("IsActive")
|
|
.HasColumnType("boolean");
|
|
|
|
b.Property<DateTime?>("LastRunTime")
|
|
.HasColumnType("timestamp with time zone");
|
|
|
|
b.Property<DateTime>("StartTime")
|
|
.HasColumnType("timestamp with time zone");
|
|
|
|
b.Property<string>("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("Accounts")
|
|
.HasForeignKey("UserId")
|
|
.OnDelete(DeleteBehavior.SetNull)
|
|
.IsRequired();
|
|
|
|
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.BacktestEntity", 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.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.IndicatorEntity", 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.JobEntity", 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.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.HasOne("Managing.Infrastructure.Databases.PostgreSql.Entities.UserEntity", "User")
|
|
.WithMany()
|
|
.HasForeignKey("UserId")
|
|
.OnDelete(DeleteBehavior.SetNull);
|
|
|
|
b.Navigation("OpenTrade");
|
|
|
|
b.Navigation("StopLossTrade");
|
|
|
|
b.Navigation("TakeProfit1Trade");
|
|
|
|
b.Navigation("TakeProfit2Trade");
|
|
|
|
b.Navigation("User");
|
|
});
|
|
|
|
modelBuilder.Entity("Managing.Infrastructure.Databases.PostgreSql.Entities.ScenarioEntity", 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.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.SignalEntity", 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.IndicatorEntity", b =>
|
|
{
|
|
b.Navigation("ScenarioIndicators");
|
|
});
|
|
|
|
modelBuilder.Entity("Managing.Infrastructure.Databases.PostgreSql.Entities.ScenarioEntity", b =>
|
|
{
|
|
b.Navigation("ScenarioIndicators");
|
|
});
|
|
|
|
modelBuilder.Entity("Managing.Infrastructure.Databases.PostgreSql.Entities.UserEntity", b =>
|
|
{
|
|
b.Navigation("Accounts");
|
|
});
|
|
#pragma warning restore 612, 618
|
|
}
|
|
}
|
|
}
|