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

34 lines
906 B
C#

using System.ComponentModel.DataAnnotations;
namespace DramaLing.Api.Models.Entities;
public class AudioCache
{
[Key]
public Guid Id { get; set; } = Guid.NewGuid();
[Required]
[MaxLength(64)]
public string TextHash { get; set; } = string.Empty;
[Required]
public string TextContent { get; set; } = string.Empty;
[Required]
[MaxLength(2)]
public string Accent { get; set; } = string.Empty; // 'us' or 'uk'
[Required]
[MaxLength(50)]
public string VoiceId { get; set; } = string.Empty;
[Required]
public string AudioUrl { get; set; } = string.Empty;
public int? FileSize { get; set; }
public int? DurationMs { get; set; }
public DateTime CreatedAt { get; set; } = DateTime.UtcNow;
public DateTime LastAccessed { get; set; } = DateTime.UtcNow;
public int AccessCount { get; set; } = 1;
}