package jnpf.model.cultivate.v2.mq;

import jnpf.enums.cultivate.v2.mq.CultivateTypeEnum;
import jnpf.model.cultivate.v2.enums.PositionBusinessSourceEnum;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.io.Serializable;
import java.util.Map;


@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class CultivateMqDTO implements Serializable {
    private static final long serialVersionUID = 1L;
    public static final String POST_ID = "postId";
    public static final String GRADE_ID = "gradeId";

    /**
     * 培训学习来源枚举 {@link PositionBusinessSourceEnum}
     * <pre>
     * 0 - 岗位学习
     * 1 - 通用课程
     * 2 - 任务学习
     * 3 - 线下课
     * </pre>
     */
    private PositionBusinessSourceEnum businessSource;

    /**
     * 业务来源id
     * 例如：
     * <p>
     * 来源是岗位学习-岗位学习id
     * 来源是通用课程-无
     * 来源是任务学习-任务id
     * 来源是线下课-线下课id
     */
    private String businessSourceId;

    /**
     * 培训类型枚举 {@link jnpf.enums.cultivate.v2.mq.CultivateTypeEnum}
     * <pre>
     * 1 - 课程
     * 2 - 考试
     * 3 - 鉴定
     * 4 - 练习
     * </pre>
     */
    private CultivateTypeEnum type;

    /**
     * 业务id
     * 例如：
     * type=1 即为 课程id
     * type=2 即为 考试id
     * type=3 即为 鉴定id
     * type=4 即为 练习id
     */
    private String businessId;

    /**
     * 状态
     * type=1   课程-[1-学习完成]
     * type=2   考试-[1待批阅，3合格，4不合格 5优秀]
     * type=3   鉴定-[0-合格，1-优秀，2-不合格]
     * type=4  练习-[1-完成]
     */
    private Integer status;


    /**
     * 用户id
     */
    private String userId;

    /**
     * 租户id
     */
    private String tenantId;

    /**
     * 其他参数
     */
    private Map<String, Object> params;

}
