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

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.util.List;

/**
 * 用户任务所有阶段完成状态响应
 */
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@Schema(description = "用户任务所有阶段完成状态响应")
public class CheckUserTaskAllPhasesCompleteVo {

    /**
     * 用户任务ID
     */
    @Schema(description = "用户任务ID")
    private String userTaskId;

    /**
     * 所有阶段的完成状态列表
     */
    @Schema(description = "所有阶段的完成状态列表")
    private List<PhaseCompleteInfo> phases;

    /**
     * 单个阶段完成状态信息
     */
    @Data
    @Builder
    @NoArgsConstructor
    @AllArgsConstructor
    @Schema(description = "单个阶段完成状态信息")
    public static class PhaseCompleteInfo {
        
        /**
         * 阶段ID
         */
        @Schema(description = "阶段ID")
        private String phaseId;


        /**
         * 是否完成
         */
        @Schema(description = "是否完成（true-已完成，false-未完成）")
        private Boolean isComplete;

        /**
         * 阶段状态（0-未开始，1-进行中，2-已完成）
         */
        @Schema(description = "阶段状态（0-未开始，1-进行中，2-已完成）")
        private Integer phaseStatus;

        /**
         * 课程状态（-1-未配置，0-未完成，1-已完成）
         */
        @Schema(description = "课程状态（-1-未配置，0-未完成，1-已完成）")
        private Integer courseState;

        /**
         * 考试状态（-1-未配置，0-未完成，1-已完成）
         */
        @Schema(description = "考试状态（-1-未配置，0-未完成，1-已完成）")
        private Integer examState;

        /**
         * 练习状态（-1-未配置，0-未完成，1-已完成）
         */
        @Schema(description = "练习状态（-1-未配置，0-未完成，1-已完成）")
        private Integer practiceState;

        /**
         * 鉴定状态（-1-未配置，0-未完成，1-已完成）
         */
        @Schema(description = "鉴定状态（-1-未配置，0-未完成，1-已完成）")
        private Integer identifyState;

        /**
         * 是否颁发证书（0-否，1-是）
         */
        @Schema(description = "是否颁发证书（0-否，1-是）")
        private Integer issuedCertificate;
    }
}