// Model/QuestionnaireAnalysisSnapshot.cs using System; using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations.Schema; namespace Model { public class QuestionnaireAnalysisSnapshot { [Key] public int Id { get; set; } [Required] public int QuestionnaireId { get; set; } // Counts public int TotalResponses { get; set; } public int AnalyzedResponses { get; set; } // Aggregated sentiment averages public double OverallPositiveSentiment { get; set; } public double OverallNegativeSentiment { get; set; } public double OverallNeutralSentiment { get; set; } // Risk distribution counts public int LowRiskCount { get; set; } public int ModerateRiskCount { get; set; } public int HighRiskCount { get; set; } public int CriticalRiskCount { get; set; } // Executive summary (generated by Claude once) public string ExecutiveSummary { get; set; } = string.Empty; // Complex data as JSON public string TopWorkplaceIssuesJson { get; set; } = "[]"; public string MostCommonKeyPhrasesJson { get; set; } = "[]"; // Metadata public DateTime GeneratedAt { get; set; } = DateTime.UtcNow; // Navigation [ForeignKey("QuestionnaireId")] public virtual Questionnaire? Questionnaire { get; set; } } }