forked from xiongyuxing/tiku-backend.net
70 lines
1.8 KiB
C#
70 lines
1.8 KiB
C#
using System.Text.Json;
|
|
using Tiku.Domain.Content;
|
|
|
|
namespace Tiku.Application.Learning;
|
|
|
|
public sealed record LearningActor(Guid TenantId, Guid UserId);
|
|
|
|
public sealed record LearningList<TItem>(IReadOnlyCollection<TItem> Items);
|
|
|
|
public sealed record SubmitAnswerCommand(
|
|
Guid QuestionId,
|
|
Guid? PracticeSessionId,
|
|
IReadOnlyCollection<string>? SelectedOptions,
|
|
string? AnswerText,
|
|
bool? SelfJudgedCorrect);
|
|
|
|
public sealed record QuestionActionCommand(Guid QuestionId, bool? Favorite);
|
|
|
|
public sealed record WordProgressCommand(
|
|
Guid WordId,
|
|
string? Status,
|
|
int? CorrectDelta,
|
|
int? WrongDelta,
|
|
DateTimeOffset? NextReviewAt);
|
|
|
|
public sealed record FavoriteWordCommand(Guid WordId, bool? Favorite, string? Note);
|
|
|
|
public sealed record LearningLimitFilter(int? Limit = null, string? Status = null, Guid? UnitId = null);
|
|
|
|
public sealed record AnswerRecordItem(
|
|
Guid Id,
|
|
Guid QuestionId,
|
|
Guid? QuestionVersionId,
|
|
Guid? PracticeSessionId,
|
|
JsonElement SelectedOptions,
|
|
string? AnswerText,
|
|
bool? IsCorrect,
|
|
DateTimeOffset AnsweredAt);
|
|
|
|
public sealed record FavoriteQuestionItem(
|
|
Guid QuestionId,
|
|
string Source,
|
|
DateTimeOffset CreatedAt);
|
|
|
|
public sealed record WrongQuestionItem(
|
|
Guid QuestionId,
|
|
int WrongCount,
|
|
DateTimeOffset LastWrongAt,
|
|
DateTimeOffset? ResolvedAt);
|
|
|
|
public sealed record WordProgressItem(
|
|
Guid WordId,
|
|
WordProgressStatus Status,
|
|
int CorrectCount,
|
|
int WrongCount,
|
|
DateTimeOffset? LastReviewAt,
|
|
DateTimeOffset? NextReviewAt,
|
|
int ReviewCount,
|
|
int CorrectStreak,
|
|
WordReviewResult? LastResult,
|
|
WordDueLevel DueLevel,
|
|
JsonElement Metadata);
|
|
|
|
public sealed record FavoriteWordItem(
|
|
Guid WordId,
|
|
string? Note,
|
|
DateTimeOffset? FavoritedAt);
|
|
|
|
public sealed record LearningActionResult(bool Ok, bool? IsFavorite = null);
|