Files
tiku-backend.net/Tiku.Application/Learning/LearningServices.cs

69 lines
3.8 KiB
C#

namespace Tiku.Application.Learning;
public interface ILearningAnalyticsService
{
Task<LearningStatsItem> GetStatsAsync(LearningActor actor, CancellationToken cancellationToken = default);
Task<LearningList<LearningTrendItem>> GetTrendAsync(LearningActor actor, LearningLimitFilter filter,
CancellationToken cancellationToken = default);
Task<LearningLeaderboardResult> GetLeaderboardAsync(LearningActor actor, LearningLimitFilter filter,
CancellationToken cancellationToken = default);
}
public interface IAnsweringService
{
Task<AnswerRecordItem> SubmitAnswerAsync(LearningActor actor, SubmitAnswerCommand command,
CancellationToken cancellationToken = default);
}
public interface IQuestionReviewService
{
Task<LearningList<FavoriteQuestionItem>> GetFavoriteQuestionsAsync(LearningActor actor,
LearningLimitFilter filter, CancellationToken cancellationToken = default);
Task<LearningActionResult> ToggleFavoriteQuestionAsync(LearningActor actor, QuestionActionCommand command,
CancellationToken cancellationToken = default);
Task<LearningList<WrongQuestionItem>> GetWrongQuestionsAsync(LearningActor actor, LearningLimitFilter filter,
CancellationToken cancellationToken = default);
Task<WrongQuestionReviewPlan> GetWrongQuestionReviewPlanAsync(LearningActor actor, LearningLimitFilter filter,
CancellationToken cancellationToken = default);
Task<LearningActionResult> ResolveWrongQuestionAsync(LearningActor actor, QuestionActionCommand command,
CancellationToken cancellationToken = default);
}
public interface IWordLearningService
{
Task<LearningList<WordProgressItem>> GetWordProgressAsync(LearningActor actor, LearningLimitFilter filter,
CancellationToken cancellationToken = default);
Task<WordReviewPlan> GetWordReviewPlanAsync(LearningActor actor, LearningLimitFilter filter,
CancellationToken cancellationToken = default);
Task<WordProgressItem> UpdateWordProgressAsync(LearningActor actor, WordProgressCommand command,
CancellationToken cancellationToken = default);
Task<WordProgressItem> ReviewWordAsync(LearningActor actor, WordReviewCommand command,
CancellationToken cancellationToken = default);
Task<WordStatsItem> GetWordStatsAsync(LearningActor actor, LearningLimitFilter filter,
CancellationToken cancellationToken = default);
Task<LearningList<FavoriteWordItem>> GetFavoriteWordsAsync(LearningActor actor, LearningLimitFilter filter,
CancellationToken cancellationToken = default);
Task<LearningActionResult> ToggleFavoriteWordAsync(LearningActor actor, FavoriteWordCommand command,
CancellationToken cancellationToken = default);
}
public interface IPracticeSessionService
{
Task<PracticeSessionItem> CreatePracticeSessionAsync(LearningActor actor, PracticeSessionCommand command,
CancellationToken cancellationToken = default);
Task<PracticeSessionDetailItem> GetPracticeSessionDetailAsync(LearningActor actor, PracticeSessionFilter filter,
CancellationToken cancellationToken = default);
Task<PracticeSessionReportItem> SubmitPracticeSessionAsync(LearningActor actor,
SubmitPracticeSessionCommand command, CancellationToken cancellationToken = default);
}
public interface IPracticeReportService
{
Task<PracticeSessionReportItem> GetPracticeSessionReportAsync(LearningActor actor, PracticeSessionFilter filter,
CancellationToken cancellationToken = default);
Task<LearningList<PracticeSessionReportItem>> GetPracticeReportsAsync(LearningActor actor,
PracticeSessionFilter filter, CancellationToken cancellationToken = default);
Task<LearningList<PracticeHistoryItem>> GetPracticeHistoryAsync(LearningActor actor,
PracticeSessionFilter filter, CancellationToken cancellationToken = default);
}