using QYZH.InteractiveMagazine.Models.Dto.UserAnswerTaskService;
using QYZH.InteractiveMagazine.Models.Entity;
namespace QYZH.InteractiveMagazine.IService;
///
/// 用户作答任务服务接口
///
public interface IUserAnswerTaskService : IBaseService
{
///
/// 获取用户期刊学习进度列表(按期刊分组)
///
/// 用户Id
/// 按期刊分组的学习进度数据
Task> GetJournalProgressAsync(long userId);
///
/// 获取目录列表(按一级目录分组,二级目录含完成状态)
///
/// 期刊Id
/// 用户Id
/// 按一级目录分组的目录列表
Task> GetCatalogListAsync(long journalId, long userId);
///
/// 获取一级目录概览(含二级目录详情、页码范围、任务完成状态)
///
/// 一级目录Id(JournalCatalogId)
/// 用户Id
/// 一级目录概览数据
Task GetCatalogOverviewAsync(long catalogId, long userId);
///
/// 获取用户答题任务列表
///
/// 二级目录Id(JournalCatalogId)
/// 用户Id
/// 答题任务列表
Task GetUserAnswerTaskListAsync(long catalogId, long userId);
///
/// 获取跨页题目详情
///
/// 任务Id
/// 用户Id
/// 跨页题目详情
Task GetCrossPageTaskAsync(long journalPageTaskId, long userId);
///
/// 领取任务积分
///
/// 任务分组Id(JournalPageTask.GroupId)
/// 用户Id
/// 领取结果
Task ClaimTaskPointsAsync(long journalPageTaskGroupId, long userId);
///
/// 批量领取任务积分(一键领取)
///
/// 批量领取参数
/// 用户Id
/// 批量领取结果
Task BatchClaimPointsAsync(BatchClaimPointsInput input, long userId);
///
/// 获取杂志列表
///
/// 用户Id
/// 查询类型:Bound=已绑定,Unbound=未绑定(添加书籍用),默认是:Bound
/// 杂志列表
Task> GetJournalListAsync(long userId, string? queryType);
///
/// 新增学生
///
/// 新增学生参数
/// 当前登录用户微信UserId(WxUserId)
/// 新增学生结果
Task AddStudentAsync(AddStudentInput input, long wxUserId);
}