Files

128 lines
3.8 KiB
C#

using System.Text.Json.Serialization;
namespace FinlyticCore.Dtos.Fundamentals;
/// <summary>
/// Repräsentiert die finanziellen Kennzahlen und Valuation-Multiples eines Assets.
/// </summary>
[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; }
}