using System.ComponentModel.DataAnnotations; namespace DramaLing.Api.Models.Entities; public class PronunciationAssessment { [Key] public Guid Id { get; set; } = Guid.NewGuid(); [Required] public Guid UserId { get; set; } public Guid? FlashcardId { get; set; } [Required] public string ReferenceText { get; set; } = string.Empty; public string TranscribedText { get; set; } = string.Empty; // 評分結果 (0-100 分) public decimal OverallScore { get; set; } public decimal AccuracyScore { get; set; } public decimal FluencyScore { get; set; } public decimal CompletenessScore { get; set; } public decimal ProsodyScore { get; set; } // 元數據 public decimal AudioDuration { get; set; } public decimal ProcessingTime { get; set; } public string? AzureRequestId { get; set; } // 詳細分析 (JSON) public string? WordLevelResults { get; set; } public string[]? Feedback { get; set; } // 學習情境 // StudySessionId removed [MaxLength(20)] public string PracticeMode { get; set; } = "word"; // 'word', 'sentence', 'conversation' public DateTime CreatedAt { get; set; } = DateTime.UtcNow; // Navigation properties public User User { get; set; } = null!; public Flashcard? Flashcard { get; set; } // StudySession reference removed }