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(CatalogId)
/// 用户Id
/// 答题任务列表
Task GetUserAnswerTaskListAsync(long catalogId, long userId);
///
/// 获取跨页题目详情
///
/// 任务分组ID(JournalPageTaskGroupId)
/// 用户Id
/// 跨页题目详情
Task GetCrossPageTaskAsync(long groupId, long userId);
///
/// 领取任务积分
///
/// 任务分组Id(JournalPageTask.GroupId)
/// 用户Id
/// 领取结果
Task ClaimTaskPointsAsync(long groupId, long userId);
///
/// 批量领取任务积分(一键领取)
///
/// 批量领取参数
/// 用户Id
/// 批量领取结果
Task BatchClaimPointsAsync(BatchClaimPointsInput input, long userId);
}