Fix db and fix endpoints
This commit is contained in:
@@ -130,7 +130,7 @@ public class ManagingDbContext : DbContext
|
||||
entity.HasKey(e => e.Id);
|
||||
entity.Property(e => e.Identifier).IsRequired().HasMaxLength(255);
|
||||
entity.Property(e => e.RequestId).IsRequired().HasMaxLength(255);
|
||||
entity.Property(e => e.UserName).IsRequired().HasMaxLength(255);
|
||||
entity.Property(e => e.UserId).IsRequired();
|
||||
entity.Property(e => e.FinalPnl).HasColumnType("decimal(18,8)");
|
||||
entity.Property(e => e.GrowthPercentage).HasColumnType("decimal(18,8)");
|
||||
entity.Property(e => e.HodlPercentage).HasColumnType("decimal(18,8)");
|
||||
@@ -143,14 +143,20 @@ public class ManagingDbContext : DbContext
|
||||
entity.Property(e => e.ScoreMessage).HasMaxLength(1000);
|
||||
entity.Property(e => e.Metadata).HasColumnType("text");
|
||||
|
||||
// Configure relationship with User
|
||||
entity.HasOne(e => e.User)
|
||||
.WithMany()
|
||||
.HasForeignKey(e => e.UserId)
|
||||
.OnDelete(DeleteBehavior.SetNull);
|
||||
|
||||
// Create indexes for common queries
|
||||
entity.HasIndex(e => e.Identifier).IsUnique();
|
||||
entity.HasIndex(e => e.RequestId);
|
||||
entity.HasIndex(e => e.UserName);
|
||||
entity.HasIndex(e => e.UserId);
|
||||
entity.HasIndex(e => e.Score);
|
||||
|
||||
// Composite indexes for efficient pagination and filtering
|
||||
entity.HasIndex(e => new { e.UserName, e.Score });
|
||||
entity.HasIndex(e => new { e.UserId, e.Score });
|
||||
entity.HasIndex(e => new { e.RequestId, e.Score });
|
||||
});
|
||||
|
||||
@@ -159,7 +165,7 @@ public class ManagingDbContext : DbContext
|
||||
{
|
||||
entity.HasKey(e => e.Id);
|
||||
entity.Property(e => e.RequestId).IsRequired().HasMaxLength(255);
|
||||
entity.Property(e => e.UserName).IsRequired().HasMaxLength(255);
|
||||
entity.Property(e => e.UserId);
|
||||
entity.Property(e => e.Name).IsRequired().HasMaxLength(255);
|
||||
entity.Property(e => e.Status)
|
||||
.IsRequired()
|
||||
@@ -178,11 +184,11 @@ public class ManagingDbContext : DbContext
|
||||
|
||||
// Create indexes for common queries
|
||||
entity.HasIndex(e => e.RequestId).IsUnique();
|
||||
entity.HasIndex(e => e.UserName);
|
||||
entity.HasIndex(e => e.UserId);
|
||||
entity.HasIndex(e => e.Status);
|
||||
|
||||
// Composite index for user queries ordered by creation date
|
||||
entity.HasIndex(e => new { e.UserName, e.CreatedAt });
|
||||
entity.HasIndex(e => new { e.UserId, e.CreatedAt });
|
||||
});
|
||||
|
||||
// Configure Scenario entity
|
||||
@@ -190,13 +196,19 @@ public class ManagingDbContext : DbContext
|
||||
{
|
||||
entity.HasKey(e => e.Id);
|
||||
entity.Property(e => e.Name).IsRequired().HasMaxLength(255);
|
||||
entity.Property(e => e.UserName).HasMaxLength(255);
|
||||
entity.Property(e => e.UserId).IsRequired();
|
||||
|
||||
// Configure relationship with User
|
||||
entity.HasOne(e => e.User)
|
||||
.WithMany()
|
||||
.HasForeignKey(e => e.UserId)
|
||||
.OnDelete(DeleteBehavior.SetNull);
|
||||
|
||||
// Create indexes
|
||||
entity.HasIndex(e => e.UserName);
|
||||
entity.HasIndex(e => e.UserId);
|
||||
|
||||
// Composite index for user scenarios
|
||||
entity.HasIndex(e => new { e.UserName, e.Name });
|
||||
entity.HasIndex(e => new { e.UserId, e.Name });
|
||||
});
|
||||
|
||||
// Configure Indicator entity
|
||||
@@ -207,13 +219,19 @@ public class ManagingDbContext : DbContext
|
||||
entity.Property(e => e.Type).IsRequired().HasConversion<string>();
|
||||
entity.Property(e => e.Timeframe).IsRequired().HasConversion<string>();
|
||||
entity.Property(e => e.SignalType).IsRequired().HasConversion<string>();
|
||||
entity.Property(e => e.UserName).HasMaxLength(255);
|
||||
entity.Property(e => e.UserId);
|
||||
|
||||
// Configure relationship with User
|
||||
entity.HasOne(e => e.User)
|
||||
.WithMany()
|
||||
.HasForeignKey(e => e.UserId)
|
||||
.OnDelete(DeleteBehavior.SetNull);
|
||||
|
||||
// Create indexes
|
||||
entity.HasIndex(e => e.UserName);
|
||||
entity.HasIndex(e => e.UserId);
|
||||
|
||||
// Composite index for user indicators
|
||||
entity.HasIndex(e => new { e.UserName, e.Name });
|
||||
entity.HasIndex(e => new { e.UserId, e.Name });
|
||||
});
|
||||
|
||||
// Configure ScenarioIndicator junction table
|
||||
@@ -249,19 +267,25 @@ public class ManagingDbContext : DbContext
|
||||
entity.Property(e => e.Type).IsRequired().HasConversion<string>();
|
||||
entity.Property(e => e.SignalType).IsRequired().HasConversion<string>();
|
||||
entity.Property(e => e.IndicatorName).IsRequired().HasMaxLength(255);
|
||||
entity.Property(e => e.UserName).HasMaxLength(255);
|
||||
entity.Property(e => e.UserId);
|
||||
entity.Property(e => e.CandleJson).HasColumnType("text");
|
||||
|
||||
// Configure relationship with User
|
||||
entity.HasOne(e => e.User)
|
||||
.WithMany()
|
||||
.HasForeignKey(e => e.UserId)
|
||||
.OnDelete(DeleteBehavior.SetNull);
|
||||
|
||||
// Create indexes
|
||||
entity.HasIndex(e => e.Identifier);
|
||||
entity.HasIndex(e => e.UserName);
|
||||
entity.HasIndex(e => e.UserId);
|
||||
entity.HasIndex(e => e.Date);
|
||||
entity.HasIndex(e => e.Ticker);
|
||||
entity.HasIndex(e => e.Status);
|
||||
|
||||
// Composite indexes for common queries
|
||||
entity.HasIndex(e => new { e.UserName, e.Date });
|
||||
entity.HasIndex(e => new { e.Identifier, e.Date, e.UserName }).IsUnique();
|
||||
entity.HasIndex(e => new { e.UserId, e.Date });
|
||||
entity.HasIndex(e => new { e.Identifier, e.Date, e.UserId }).IsUnique();
|
||||
});
|
||||
|
||||
// Configure Position entity
|
||||
@@ -275,9 +299,15 @@ public class ManagingDbContext : DbContext
|
||||
entity.Property(e => e.Initiator).IsRequired().HasConversion<string>();
|
||||
entity.Property(e => e.SignalIdentifier).IsRequired().HasMaxLength(255);
|
||||
entity.Property(e => e.AccountName).IsRequired().HasMaxLength(255);
|
||||
entity.Property(e => e.UserName).HasMaxLength(255);
|
||||
entity.Property(e => e.UserId);
|
||||
entity.Property(e => e.MoneyManagementJson).HasColumnType("text");
|
||||
|
||||
// Configure relationship with User
|
||||
entity.HasOne(e => e.User)
|
||||
.WithMany()
|
||||
.HasForeignKey(e => e.UserId)
|
||||
.OnDelete(DeleteBehavior.SetNull);
|
||||
|
||||
// Configure relationships with trades
|
||||
entity.HasOne(e => e.OpenTrade)
|
||||
.WithMany()
|
||||
@@ -301,12 +331,12 @@ public class ManagingDbContext : DbContext
|
||||
|
||||
// Create indexes
|
||||
entity.HasIndex(e => e.Identifier).IsUnique();
|
||||
entity.HasIndex(e => e.UserName);
|
||||
entity.HasIndex(e => e.UserId);
|
||||
entity.HasIndex(e => e.Status);
|
||||
entity.HasIndex(e => e.Date);
|
||||
|
||||
// Composite indexes
|
||||
entity.HasIndex(e => new { e.UserName, e.Identifier });
|
||||
entity.HasIndex(e => new { e.UserId, e.Identifier });
|
||||
});
|
||||
|
||||
// Configure Trade entity
|
||||
|
||||
Reference in New Issue
Block a user