using System; using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations.Schema; namespace FinlyticSentiment.Entities; /// /// Entity representing a single sentiment evaluation of an asset mentioned in a news article. /// [Table("article_sentiments")] public class ArticleSentimentEntity { [Key] public Guid Id { get; set; } = Guid.NewGuid(); [Required] public Guid ArticleId { get; set; } [Required] [MaxLength(12)] public string Isin { get; set; } = string.Empty; [Required] [MaxLength(256)] public string Name { get; set; } = string.Empty; [MaxLength(128)] public string? Sector { get; set; } [Required] [MaxLength(32)] public string Label { get; set; } = "NEUTRAL"; public double CompoundScore { get; set; } public double Confidence { get; set; } [MaxLength(32)] public string? Impact { get; set; } public double PositiveProbability { get; set; } public double NegativeProbability { get; set; } public double NeutralProbability { get; set; } [MaxLength(1024)] public string? KeyHighlight { get; set; } public DateTime PublishedAtUtc { get; set; } public DateTime AnalyzedAtUtc { get; set; } = DateTime.UtcNow; }