refactor(assets): update asset entity mappings, database migrations, and MQTT RPC handlers
This commit is contained in:
@@ -17,9 +17,9 @@ public class AssetsDbContext : DbContext, ISettingsDbContext
|
||||
}
|
||||
|
||||
public DbSet<SettingEntity> DynamicSettings => Set<SettingEntity>();
|
||||
public DbSet<Settings> Settings { get; set; }
|
||||
public DbSet<AssetEntity> TradeRepublicAssets { get; set; }
|
||||
public DbSet<TagEntity> TradeRepublicTags { get; set; }
|
||||
public DbSet<AssetEntity> TradeRepublicAssets => Set<AssetEntity>();
|
||||
public DbSet<DerivativeEntity> Derivatives => Set<DerivativeEntity>();
|
||||
public DbSet<TagEntity> TradeRepublicTags => Set<TagEntity>();
|
||||
|
||||
protected override void OnModelCreating(ModelBuilder modelBuilder)
|
||||
{
|
||||
@@ -30,20 +30,29 @@ public class AssetsDbContext : DbContext, ISettingsDbContext
|
||||
entity.HasKey(e => e.Id);
|
||||
entity.HasIndex(e => e.Key).IsUnique();
|
||||
});
|
||||
|
||||
modelBuilder.Entity<AssetEntity>(entity =>
|
||||
{
|
||||
entity.HasKey(e => new {e.Isin, e.InstrumentCategory});
|
||||
entity.HasKey(e => new { e.Isin, e.InstrumentCategory });
|
||||
entity.HasIndex(e => e.LastUpdatedAt);
|
||||
|
||||
entity.HasDiscriminator<string>("AssetType")
|
||||
.HasValue<StockEntity>("Stock")
|
||||
.HasValue<CryptoEntity>("Crypto")
|
||||
.HasValue<EtfEntity>("Etf")
|
||||
.HasValue<SyntheticEntity>("Synthetic")
|
||||
.HasValue<BondEntity>("Bond")
|
||||
.HasValue<DerivativeEntity>("Derivative");
|
||||
.HasValue<SyntheticEntity>("Synthetic");
|
||||
});
|
||||
|
||||
modelBuilder.Entity<DerivativeEntity>(entity =>
|
||||
{
|
||||
entity.HasKey(e => e.Isin);
|
||||
entity.HasIndex(e => e.UnderlyingIsin);
|
||||
entity.HasIndex(e => e.OptionType);
|
||||
entity.HasIndex(e => e.Leverage);
|
||||
entity.HasIndex(e => e.LastUpdatedAt);
|
||||
entity.HasIndex(e => new { e.UnderlyingIsin, e.OptionType, e.Leverage, e.Barrier });
|
||||
});
|
||||
|
||||
|
||||
var stringListConverter =
|
||||
new Microsoft.EntityFrameworkCore.Storage.ValueConversion.ValueConverter<List<string>, string>(
|
||||
v => System.Text.Json.JsonSerializer.Serialize(v, (System.Text.Json.JsonSerializerOptions?)null),
|
||||
@@ -75,15 +84,6 @@ public class AssetsDbContext : DbContext, ISettingsDbContext
|
||||
|
||||
modelBuilder.Entity<TagEntity>(entity => { entity.HasKey(e => e.Id); });
|
||||
|
||||
modelBuilder.Entity<Settings>(entity =>
|
||||
{
|
||||
entity.HasKey(e => e.Id);
|
||||
|
||||
entity.Property(e => e.CurrentScanningType)
|
||||
.HasConversion<string>()
|
||||
.HasMaxLength(50);
|
||||
});
|
||||
|
||||
modelBuilder.Entity<AssetEntity>()
|
||||
.HasMany(a => a.Tags)
|
||||
.WithMany(t => t.Assets);
|
||||
|
||||
Reference in New Issue
Block a user