using DramaLing.Api.Models.Entities; using DramaLing.Api.Models.DTOs; namespace DramaLing.Api.Contracts.Repositories; public interface IFlashcardReviewRepository : IRepository { /// /// 獲取待複習的詞卡(包含複習記錄) /// Task> GetDueFlashcardsAsync( Guid userId, DueFlashcardsQuery query); /// /// 獲取或創建詞卡的複習記錄 /// Task GetOrCreateReviewAsync(Guid userId, Guid flashcardId); /// /// 根據用戶ID和詞卡ID獲取複習記錄 /// Task GetByUserAndFlashcardAsync(Guid userId, Guid flashcardId); /// /// 獲取用戶的複習統計 /// Task<(int TodayDue, int Overdue, int TotalReviews)> GetReviewStatsAsync(Guid userId); /// /// 獲取今天到期的詞卡數量 /// Task GetTodayDueCountAsync(Guid userId); /// /// 獲取過期的詞卡數量 /// Task GetOverdueCountAsync(Guid userId); /// /// 更新複習記錄 /// Task UpdateReviewAsync(FlashcardReview review); }