using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations.Schema; namespace FinlyticSimulation.Database.Entities; /// /// A saved, named-by-(Isin, StrategyKey) set of tunable indicator parameter overrides (see /// TechnicalContext.ParameterOverrides), so a parameter set found useful via repeated backtest /// experimentation can be reused without retyping it every time. Purely a backtesting-side convenience - never /// read by live scanning (FinlyticTechnicals.Services.TechnicalScoringEngine never queries this table). /// [Table("simulation_strategy_parameters")] public class SimulationStrategyParameterEntity { [Required] [MaxLength(20)] public string Isin { get; set; } = string.Empty; [Required] [MaxLength(50)] public string StrategyKey { get; set; } = string.Empty; /// Keyed by "{StrategyKey}.{ParameterName}", matching TechnicalContext.ParameterOverrides 1:1. public Dictionary Parameters { get; set; } = new(); public DateTime UpdatedAtUtc { get; set; } = DateTime.UtcNow; }