using DramaLing.Api.Models.Entities;
namespace DramaLing.Api.Contracts.Repositories;
///
/// User 專門的 Repository 介面
///
public interface IUserRepository : IRepository
{
// 用戶查詢
Task GetByEmailAsync(string email);
Task GetByUsernameAsync(string username);
Task ExistsByEmailAsync(string email);
Task ExistsByUsernameAsync(string username);
// 用戶設定相關
Task GetUserWithSettingsAsync(Guid userId);
Task GetUserWithStatsAsync(Guid userId);
// 學習進度統計
Task> GetUserLearningStatsAsync(Guid userId);
Task GetTotalStudyTimeAsync(Guid userId);
Task GetLastActivityDateAsync(Guid userId);
// 用戶活躍度
Task> GetActiveUsersAsync(int days);
Task> GetNewUsersAsync(DateTime since);
}