namespace QYZH.InteractiveMagazine.Models.Dto.UserAnswerTaskService;

/// <summary>
/// 用户期刊学习进度输出（按期刊分组）
/// </summary>
public class JournalProgressOutput
{
    /// <summary>
    /// 期刊ID
    /// </summary>
    public long JournalId { get; set; }

    /// <summary>
    /// 期刊名称
    /// </summary>
    public string JournalName { get; set; }

    /// <summary>
    /// 栏目数（一级目录个数）
    /// </summary>
    public int CatalogCount { get; set; }

    /// <summary>
    /// 任务总数（该期刊下 JournalPageTask 的条数）
    /// </summary>
    public int TotalTaskCount { get; set; }

    /// <summary>
    /// 已完成任务数（按 JournalPageTaskGroupId 去重，同一题跨页算1个）
    /// </summary>
    public int CompletedTaskCount { get; set; }

    /// <summary>
    /// 成长值（已完成任务的 GrowthPoint 累加）
    /// </summary>
    public int TotalGrowthPoints { get; set; }

    /// <summary>
    /// 积分值（已完成任务的 Points 累加）
    /// </summary>
    public int TotalPoints { get; set; }

    /// <summary>
    /// 进度百分比（已完成任务ID数 / 总任务数 × 100）
    /// </summary>
    public double Progress { get; set; }

    /// <summary>
    /// 剩余篇数（该期刊总页数 - 用户已作答页数）
    /// </summary>
    public int RemainingPages { get; set; }

    /// <summary>
    /// 连续打卡天数
    /// </summary>
    public int ConsecutiveDays { get; set; }
}
