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;
}