using System.Text.Json.Serialization; namespace FinlyticCore.Dtos.Fundamentals; /// /// Repräsentiert die finanziellen Kennzahlen und Valuation-Multiples eines Assets. /// [Serializable] public record FundamentalDataDto { [JsonPropertyName("ticker")] public TickerInfoDto Ticker { get; init; } = new(); // --- Valuation & Multiples --- [JsonPropertyName("marketCap")] public decimal? MarketCap { get; init; } [JsonPropertyName("enterpriseValue")] public decimal? EnterpriseValue { get; init; } [JsonPropertyName("trailingPe")] public decimal? TrailingPe { get; init; } [JsonPropertyName("forwardPe")] public decimal? ForwardPe { get; init; } [JsonPropertyName("pegRatio")] public decimal? PegRatio { get; init; } [JsonPropertyName("priceToSales")] public decimal? PriceToSales { get; init; } [JsonPropertyName("priceToBook")] public decimal? PriceToBook { get; init; } [JsonPropertyName("evToEbitda")] public decimal? EvToEbitda { get; init; } // --- Income Statement (TTM) --- [JsonPropertyName("totalRevenue")] public decimal? TotalRevenue { get; init; } [JsonPropertyName("revenueGrowthYoY")] public decimal? RevenueGrowthYoY { get; init; } [JsonPropertyName("grossProfit")] public decimal? GrossProfit { get; init; } [JsonPropertyName("operatingIncome")] public decimal? OperatingIncome { get; init; } [JsonPropertyName("ebitda")] public decimal? Ebitda { get; init; } [JsonPropertyName("netIncome")] public decimal? NetIncome { get; init; } [JsonPropertyName("dilutedEps")] public decimal? DilutedEps { get; init; } // --- Balance Sheet & Cash Flow --- [JsonPropertyName("totalCash")] public decimal? TotalCash { get; init; } [JsonPropertyName("totalDebt")] public decimal? TotalDebt { get; init; } [JsonPropertyName("debtToEquity")] public decimal? DebtToEquity { get; init; } [JsonPropertyName("currentRatio")] public decimal? CurrentRatio { get; init; } [JsonPropertyName("operatingCashFlow")] public decimal? OperatingCashFlow { get; init; } [JsonPropertyName("freeCashFlow")] public decimal? FreeCashFlow { get; init; } // --- Dividenden & Profitabilität --- [JsonPropertyName("returnOnEquity")] public decimal? ReturnOnEquity { get; init; } [JsonPropertyName("returnOnAssets")] public decimal? ReturnOnAssets { get; init; } [JsonPropertyName("forwardDividendYield")] public decimal? ForwardDividendYield { get; init; } [JsonPropertyName("payoutRatio")] public decimal? PayoutRatio { get; init; } // --- 52-Wochen-Spannbreite --- [JsonPropertyName("fiftyTwoWeekHigh")] public decimal? FiftyTwoWeekHigh { get; init; } [JsonPropertyName("fiftyTwoWeekLow")] public decimal? FiftyTwoWeekLow { get; init; } // --- Analysten-Ratings & Kursziele --- [JsonPropertyName("consensusRating")] public string? ConsensusRating { get; init; } [JsonPropertyName("priceTargetLow")] public decimal? PriceTargetLow { get; init; } [JsonPropertyName("priceTargetMean")] public decimal? PriceTargetMean { get; init; } [JsonPropertyName("priceTargetHigh")] public decimal? PriceTargetHigh { get; init; } // --- Aktionärsstruktur & Short-Interesse --- [JsonPropertyName("percentHeldByInstitutions")] public decimal? PercentHeldByInstitutions { get; init; } [JsonPropertyName("percentHeldByInsiders")] public decimal? PercentHeldByInsiders { get; init; } [JsonPropertyName("shortPercentOfFloat")] public decimal? ShortPercentOfFloat { get; init; } [JsonPropertyName("shortRatio")] public decimal? ShortRatio { get; init; } [JsonPropertyName("lastUpdatedUtc")] public DateTime LastUpdatedUtc { get; init; } }