using FinlyticCore.Entities.Settings; using FinlyticTechnicalAnalysis.Entities; using Microsoft.EntityFrameworkCore; namespace FinlyticTechnicalAnalysis.Database; public class TechnicalAnalysisDbContext : DbContext { public TechnicalAnalysisDbContext(DbContextOptions options) : base(options) { } public DbSet DynamicSettings => Set(); public DbSet MarketCandles => Set(); public DbSet MacroData => Set(); public DbSet CachedAnalyses => Set(); public DbSet Settings => Set(); protected override void OnModelCreating(ModelBuilder modelBuilder) { base.OnModelCreating(modelBuilder); modelBuilder.Entity(entity => { entity.HasKey(e => e.Id); entity.HasIndex(e => e.Key); }); modelBuilder.Entity() .HasIndex(c => new { c.Symbol, c.Interval, c.Timestamp }) .IsUnique(); modelBuilder.Entity() .HasIndex(c => c.Isin); } }