using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations.Schema; namespace FinlyticFundamentals.Entities; public class FundamentalDataEntity { [Key] public string Isin { get; set; } = string.Empty; public TickerEntity Ticker { get; set; } = new(); // --- Valuation & Multiples --- public decimal? MarketCap { get; set; } public decimal? EnterpriseValue { get; set; } public decimal? TrailingPe { get; set; } public decimal? ForwardPe { get; set; } public decimal? PegRatio { get; set; } public decimal? PriceToSales { get; set; } public decimal? PriceToBook { get; set; } public decimal? EvToEbitda { get; set; } // --- Income Statement (TTM) --- public decimal? TotalRevenue { get; set; } public decimal? RevenueGrowthYoY { get; set; } public decimal? GrossProfit { get; set; } public decimal? OperatingIncome { get; set; } // EBIT public decimal? Ebitda { get; set; } public decimal? NetIncome { get; set; } public decimal? DilutedEps { get; set; } // --- Balance Sheet & Cash Flow (MRQ / TTM) --- public decimal? TotalCash { get; set; } public decimal? TotalDebt { get; set; } public decimal? DebtToEquity { get; set; } public decimal? CurrentRatio { get; set; } public decimal? OperatingCashFlow { get; set; } public decimal? FreeCashFlow { get; set; } // --- Dividenden & Profitabilität --- public decimal? ReturnOnEquity { get; set; } public decimal? ReturnOnAssets { get; set; } public decimal? ForwardDividendYield { get; set; } public decimal? PayoutRatio { get; set; } // --- 52-Wochen-Spannbreite --- public decimal? FiftyTwoWeekHigh { get; set; } public decimal? FiftyTwoWeekLow { get; set; } // --- Analysten-Ratings & Kursziele --- public string? ConsensusRating { get; set; } public decimal? PriceTargetLow { get; set; } public decimal? PriceTargetMean { get; set; } public decimal? PriceTargetHigh { get; set; } // --- Aktionärsstruktur & Short-Interesse --- public decimal? PercentHeldByInstitutions { get; set; } public decimal? PercentHeldByInsiders { get; set; } public decimal? ShortPercentOfFloat { get; set; } public decimal? ShortRatio { get; set; } public DateTime LastUpdatedUtc { get; set; } = DateTime.UtcNow; [Required] public string AssetDataIsin { get; set; } = string.Empty; [ForeignKey(nameof(AssetDataIsin))] public AssetDataEntity AssetData { get; set; } = null!; }