Files
Finlytic/FinlyticFundamentals/Entities/FundamentalDataEntity.cs
T

69 lines
2.5 KiB
C#

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!;
}