feat: add ChartModelsV2 (ChartUlMetadata, ChartSeriesPoint, ChartDataV2)

This commit is contained in:
2026-05-27 15:42:38 +02:00
parent 704d634940
commit 5d67ae3463

View File

@@ -0,0 +1,56 @@
namespace CertReports.Syncfusion.Models;
/// <summary>
/// Metadata di un sottostante (da SP cedlab_Chart_UL1).
/// Prima riga = worst-of (IsWorstOf = 1).
/// </summary>
public class ChartUlMetadata
{
public int IDCertificates { get; set; }
public int IDUnderlyings { get; set; }
public DateTime StartDate { get; set; }
public decimal Strike { get; set; }
public decimal BarrieraCouponPerc { get; set; }
public decimal BarrieraCoupon { get; set; }
public decimal BarrieraCapitalePerc { get; set; }
public decimal BarrieraCapitale { get; set; }
public string Sottostante { get; set; } = string.Empty;
public int IsWorstOf { get; set; }
public decimal PriceWorst { get; set; }
public decimal PriceWorstPerc { get; set; }
public int NumPrezziCFT { get; set; }
public string NomeCFT { get; set; } = string.Empty;
public decimal TriggerAutocallPerc { get; set; }
public decimal AutocallValue { get; set; }
}
/// <summary>
/// Singolo punto di una serie (da SP cedlab_Chart_AllSeriesV2).
/// IDUnderlyings = 0 → serie del certificato.
/// </summary>
public class ChartSeriesPoint
{
public int IDUnderlyings { get; set; }
public DateTime Date { get; set; }
public decimal Performance { get; set; }
}
/// <summary>
/// Dati completi per il grafico V2.
/// </summary>
public class ChartDataV2
{
public string Isin { get; set; } = string.Empty;
/// <summary>
/// Metadata globale: prima riga di cedlab_Chart_UL1 (il worst-of).
/// Contiene NomeCFT, NumPrezziCFT, barriere, trigger — uguali per tutte le righe.
/// </summary>
public ChartUlMetadata GlobalMeta { get; set; } = new();
/// <summary>Tutti i sottostanti (per IsWorstOf, PriceWorst, nomi legenda).</summary>
public List<ChartUlMetadata> Underlyings { get; set; } = new();
/// <summary>Tutti i punti di tutte le serie (CTF + UL), ordinati per data.</summary>
public List<ChartSeriesPoint> SeriesPoints { get; set; } = new();
}