48 lines
1.4 KiB
C#
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
|
|
} |