using System;
using System.Collections.Generic;
using System.Text.Json.Serialization;
namespace FinlyticCore.Dtos.Fundamentals;
///
/// Haupt-DTO für die aggregierte Anzeige der Stammdaten, Fundamentaldaten und Events eines Assets.
///
[Serializable]
public record AssetFundamentalsDto
{
///
/// Grundlegende Unternehmens- und Stammdaten (Aus AssetDataEntity).
///
[JsonPropertyName("asset")]
public AssetHeaderDto Asset { get; init; } = new();
///
/// Aktuellste Finanzeckdaten und Kennzahlen (Aus FundamentalDataEntity).
///
[JsonPropertyName("fundamentals")]
public FundamentalDataDto? Fundamentals { get; init; }
///
/// Liste der Führungskräfte/Vorstände (Aus KeyExecutiveEntity).
///
[JsonPropertyName("executives")]
public List Executives { get; init; } = [];
///
/// Bevorstehende oder vergangene Termine wie Earnings oder Dividenden (Aus AssetEventEntity).
///
[JsonPropertyName("events")]
public List Events { get; init; } = [];
///
/// Zeitstempel der letzten Gesamt-Aktualisierung.
///
[JsonPropertyName("lastUpdatedAt")]
public DateTime LastUpdatedAt { get; init; } = DateTime.UtcNow;
}