dramaling-vocab-learning/backend/DramaLing.Api/Models/Entities/PronunciationAssessment.cs

48 lines
1.4 KiB
C#

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
}