using System; using System.ComponentModel.DataAnnotations; using System.Text.Json.Serialization; namespace FinlyticFundamentals.Entities; /// /// Relational statement table linking historical Income Statements, Balance Sheets, and Cash Flow metrics. /// public class FinancialStatementEntity { [Key] public Guid Id { get; set; } = Guid.NewGuid(); [Required] public string Isin { get; set; } = string.Empty; [JsonIgnore] public AssetFundamentalsEntity? AssetFundamentals { get; set; } [Required] public string PeriodType { get; set; } = string.Empty; // "Annual" or "Quarterly" [Required] public DateTime EndDate { get; set; } // --- Income Statement Fields --- public decimal? TotalRevenue { get; set; } public decimal? CostOfRevenue { get; set; } public decimal? GrossProfit { get; set; } public decimal? OperatingExpenses { get; set; } public decimal? OperatingIncome { get; set; } public decimal? Ebitda { get; set; } public decimal? NetIncome { get; set; } public decimal? EpsBasic { get; set; } public decimal? EpsDiluted { get; set; } // --- Balance Sheet Fields --- public decimal? CashAndCashEquivalents { get; set; } public decimal? AccountsReceivable { get; set; } public decimal? Inventory { get; set; } public decimal? TotalCurrentAssets { get; set; } public decimal? TotalNonCurrentAssets { get; set; } public decimal? CurrentLiabilities { get; set; } public decimal? LongTermDebt { get; set; } public decimal? TotalLiabilities { get; set; } public decimal? TotalStockholdersEquity { get; set; } // --- Cash Flow Fields --- public decimal? OperatingCashFlow { get; set; } public decimal? InvestingCashFlow { get; set; } public decimal? CapitalExpenditures { get; set; } public decimal? FinancingCashFlow { get; set; } public decimal? FreeCashFlow { get; set; } // OperatingCashFlow - CapEx }