namespace HoneyBox.Admin.Business.Models.Task;

#region Response Models

/// <summary>
/// 任务响应模型
/// </summary>
public class TaskResponse
{
    /// <summary>
    /// 主键ID
    /// </summary>
    public int Id { get; set; }

    /// <summary>
    /// 任务标题
    /// </summary>
    public string Title { get; set; } = string.Empty;

    /// <summary>
    /// 任务类型：1-每日任务 2-每周任务
    /// </summary>
    public int Type { get; set; }

    /// <summary>
    /// 任务类型名称
    /// </summary>
    public string TypeName { get; set; } = string.Empty;

    /// <summary>
    /// 任务分类
    /// </summary>
    public int Cate { get; set; }

    /// <summary>
    /// 是否重要任务
    /// </summary>
    public int? IsImportant { get; set; }

    /// <summary>
    /// 完成次数要求
    /// </summary>
    public int? Number { get; set; }

    /// <summary>
    /// 奖励数量（欧气值）
    /// </summary>
    public int? ZNumber { get; set; }

    /// <summary>
    /// 排序
    /// </summary>
    public int? Sort { get; set; }

    /// <summary>
    /// 创建时间
    /// </summary>
    public DateTime CreatedAt { get; set; }

    /// <summary>
    /// 更新时间
    /// </summary>
    public DateTime UpdatedAt { get; set; }
}

#endregion

#region Request Models

/// <summary>
/// 任务列表查询请求
/// </summary>
public class TaskListRequest : PagedRequest
{
    /// <summary>
    /// 关键词搜索（搜索标题）
    /// </summary>
    public string? Keyword { get; set; }

    /// <summary>
    /// 任务类型筛选：1-每日任务 2-每周任务
    /// </summary>
    public int? Type { get; set; }
}

/// <summary>
/// 任务创建请求
/// </summary>
public class TaskCreateRequest
{
    /// <summary>
    /// 任务标题
    /// </summary>
    public string Title { get; set; } = string.Empty;

    /// <summary>
    /// 任务类型：1-每日任务 2-每周任务
    /// </summary>
    public int Type { get; set; }

    /// <summary>
    /// 任务分类
    /// </summary>
    public int Cate { get; set; }

    /// <summary>
    /// 是否重要任务
    /// </summary>
    public int? IsImportant { get; set; }

    /// <summary>
    /// 完成次数要求
    /// </summary>
    public int Number { get; set; }

    /// <summary>
    /// 奖励数量（欧气值）
    /// </summary>
    public int ZNumber { get; set; }

    /// <summary>
    /// 排序
    /// </summary>
    public int? Sort { get; set; }
}

/// <summary>
/// 任务更新请求
/// </summary>
public class TaskUpdateRequest
{
    /// <summary>
    /// 任务标题
    /// </summary>
    public string Title { get; set; } = string.Empty;

    /// <summary>
    /// 任务类型：1-每日任务 2-每周任务
    /// </summary>
    public int Type { get; set; }

    /// <summary>
    /// 任务分类
    /// </summary>
    public int Cate { get; set; }

    /// <summary>
    /// 是否重要任务
    /// </summary>
    public int? IsImportant { get; set; }

    /// <summary>
    /// 完成次数要求
    /// </summary>
    public int Number { get; set; }

    /// <summary>
    /// 奖励数量（欧气值）
    /// </summary>
    public int ZNumber { get; set; }

    /// <summary>
    /// 排序
    /// </summary>
    public int? Sort { get; set; }
}

#endregion
