package jnpf.model.cultivate.v2.task.vo;

import lombok.Data;

import java.util.Date;
import java.util.List;

/**
 * V2培训任务统计响应VO
 *
 * @author system
 * @create 2026-05-06
 */
@Data
public class V2CultivateTaskCountVo {

    /**
     * 任务ID
     */
    private String id;

    /**
     * 任务名称
     */
    private String taskName;

    /**
     * 任务类型(0长期,1限时)
     */
    private Integer taskType;

    /**
     * 任务状态(0未发布,1未开始,2进行中,3已完成,4终止)
     */
    private Integer status;

    /**
     * 任务开始时间
     */
    private Date timeLimitStartTime;

    /**
     * 任务结束时间
     */
    private Date timeLimitEndTime;

    /**
     * 课程数量：本任务中所有阶段未删除、上架状态的课程数量
     */
    private Integer courseNum;

    /**
     * 考试名称列表：本任务中所有阶段的考试名称且去重复
     */
    private List<String> examNames;

    /**
     * 鉴定表名称列表：本任务中所有阶段的鉴定表名称且去重复
     */
    private List<String> identificationNames;

    /**
     * 证书名称列表：本任务中所有阶段的证书名称且去重复
     */
    private List<String> certificateNames;

    /**
     * 完课率：任务中所有必修课程已学完课程人数/任务总人数
     */
    private String completeCourseRate;

    /**
     * 参与考试人数：已触发考试的人次
     */
    private Integer examParticipantCount;

    /**
     * 考试合格率：考试（合格+优秀）的次数（人次）/已触发考试总次数（人次）
     */
    private String examPassRate;

    /**
     * 鉴定人数：已触发鉴定的人次
     */
    private Integer identifyParticipantCount;

    /**
     * 鉴定合格率：鉴定（合格+优秀）的次数（人次）/已触发鉴定总次数（人次）
     */
    private String identifyPassRate;

    /**
     * 应完成人数：任务已分配人数
     */
    private Integer assignedUserCount;

    /**
     * 任务完成人数：任务已完成人数
     */
    private Integer completedUserCount;

    /**
     * 任务完成率：已完成人数/应完成人数
     */
    private String taskCompleteRate;

    /**
     * 已颁发证书：已颁发的证书个数
     */
    private Integer issuedCertificateCount;

    /**
     * 任务创建时间
     */
    private Date creatorTime;
}
