feat(fundamentals): refactor entities, add Yahoo modules scraper, 52W metrics and migrations
This commit is contained in:
@@ -1,6 +1,69 @@
|
||||
namespace FinlyticFundamentals.Entities;
|
||||
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!;
|
||||
}
|
||||
Reference in New Issue
Block a user