feat(Fundamentals): add fundamentals service

This commit is contained in:
2026-08-09 21:01:39 +02:00
parent e0778b88ea
commit 605e41cfeb
21 changed files with 3122 additions and 0 deletions
@@ -0,0 +1,65 @@
using System;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
namespace FinlyticFundamentals.Entities;
/// <summary>
/// Database table representing dynamic trading data, exchange-dependent valuation ratios, liquidity, and leverage stats for each traded ticker symbol.
/// </summary>
public class TickerFundamentalsEntity
{
[Key]
[Required]
public string Ticker { get; set; } = string.Empty; // Primary key, e.g., "POR.DE"
[Required]
public string Isin { get; set; } = string.Empty;
[ForeignKey("Isin")]
public AssetFundamentalsEntity? AssetFundamentals { get; set; }
public string? Exchange { get; set; }
public string? TradingCurrency { get; set; }
// Real-time & Price Performance
public decimal CurrentPrice { get; set; }
public decimal DayChangeAbsolute { get; set; }
public decimal DayChangePercent { get; set; }
public decimal FiftyTwoWeekHigh { get; set; }
public decimal FiftyTwoWeekLow { get; set; }
// Size & Enterprise Valuation
public decimal MarketCapitalization { get; set; }
public decimal EnterpriseValue { get; set; }
// Valuation Ratios
public decimal? PeRatioTrailing { get; set; }
public decimal? PeRatioForward { get; set; }
public decimal? PegRatio { get; set; }
public decimal? PbRatio { get; set; }
public decimal? PsRatio { get; set; }
public decimal? EvToEbitda { get; set; }
public decimal? EvToRevenue { get; set; }
// Profitability & Return Ratios
public decimal? GrossMargin { get; set; }
public decimal? OperatingMargin { get; set; }
public decimal? NetProfitMargin { get; set; }
public decimal? ReturnOnEquity { get; set; }
public decimal? ReturnOnAssets { get; set; }
public decimal? ReturnOnInvestedCapital { get; set; }
// Financial Health, Solvency & Liquidity
public decimal? DebtToEquity { get; set; }
public decimal? CurrentRatio { get; set; }
public decimal? QuickRatio { get; set; }
public decimal? InterestCoverage { get; set; }
// Dividend Performance Metrics
public decimal? DividendYield { get; set; }
public decimal? PayoutRatio { get; set; }
public DateTime? ExDividendDate { get; set; }
public DateTime LastUpdatedAt { get; set; } = DateTime.UtcNow;
}