namespace DramaLing.Api.Services.Infrastructure.Caching; public class CacheStrategyManager : ICacheStrategyManager { public TimeSpan CalculateSmartExpiry(string key, T value) where T : class { return key switch { var k when k.StartsWith("analysis:") => TimeSpan.FromHours(2), // AI 分析結果快取2小時 var k when k.StartsWith("user:") => TimeSpan.FromMinutes(30), // 用戶資料快取30分鐘 var k when k.StartsWith("flashcard:") => TimeSpan.FromMinutes(15), // 詞卡資料快取15分鐘 var k when k.StartsWith("stats:") => TimeSpan.FromMinutes(5), // 統計資料快取5分鐘 _ => TimeSpan.FromMinutes(10) // 預設快取10分鐘 }; } public TimeSpan CalculateMemoryExpiry(string key) { return key switch { var k when k.StartsWith("analysis:") => TimeSpan.FromMinutes(30), var k when k.StartsWith("user:") => TimeSpan.FromMinutes(10), var k when k.StartsWith("flashcard:") => TimeSpan.FromMinutes(5), var k when k.StartsWith("stats:") => TimeSpan.FromMinutes(2), _ => TimeSpan.FromMinutes(5) }; } }