package com.qmth.distributed.print.business.entity;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import com.qmth.teachcloud.common.base.BaseEntity;
import io.swagger.annotations.ApiModelProperty;

import java.io.Serializable;
import java.util.List;

/**
 * <p>
 * 命题任务明细表（入库申请）
 * </p>
 *
 * @author xf
 * @since 2021-03-23
 */
@TableName("exam_task_detail")
public class ExamTaskDetail extends BaseEntity implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 命题任务ID
     */
    @JsonSerialize(using = ToStringSerializer.class)
    @TableField("exam_task_id")
    private Long examTaskId;
    /**
     * 试卷类型，多个以”/“分隔，如A/B/C/D
     */
    @TableField("paper_type")
    private String paperType;

    @TableField("draw_count")
    private Integer drawCount;
    /**
     * [
     * {
     * "type": "A",
     * "attachmentId": 12,
     * "totalPages": 3
     * },
     * {
     * "type": "B",
     * "attachmentId": 13,
     * "totalPages": 2
     * }
     * ]
     */
    @ApiModelProperty(value = "转换后A3试卷附件")
    @TableField("paper_attachment_ids")
    private String paperAttachmentIds;
    /**
     * 题卡ID
     */
    @JsonSerialize(using = ToStringSerializer.class)
    @TableField("card_id")
    private Long cardId;

    @TableField("make_method")
    private String makeMethod;
    /**
     * [
     * {
     * "attachmentId": 12
     * },
     * {
     * "attachmentId": 13
     * }
     * ]
     */
    @TableField("paper_confirm_attachment_ids")
    private String paperConfirmAttachmentIds;
    /**
     * 备注
     */
    private String remark;
    /**
     * 曝光卷型：已打印卷型，多个以”/“分隔，如A/B/C/D
     */
    @TableField("exposed_paper_type")
    private String exposedPaperType;

    @TableField("relate_paper_type")
    private String relatePaperType;

    @TableField("unexposed_paper_type")
    private String unexposedPaperType;

    private Boolean enable;

    @TableField(exist = false)
    private String operateType;

    @ApiModelProperty(value = "流程审批人列表")
    @JsonSerialize(using = ToStringSerializer.class)
    @TableField(exist = false)
    private List<Long> approveUserIds;

    public static long getSerialVersionUID() {
        return serialVersionUID;
    }

    public List<Long> getApproveUserIds() {
        return approveUserIds;
    }

    public void setApproveUserIds(List<Long> approveUserIds) {
        this.approveUserIds = approveUserIds;
    }

    public Long getExamTaskId() {
        return examTaskId;
    }

    public void setExamTaskId(Long examTaskId) {
        this.examTaskId = examTaskId;
    }

    public String getPaperType() {
        return paperType;
    }

    public void setPaperType(String paperType) {
        this.paperType = paperType;
    }

    public Integer getDrawCount() {
        return drawCount;
    }

    public void setDrawCount(Integer drawCount) {
        this.drawCount = drawCount;
    }

    public String getPaperAttachmentIds() {
        return paperAttachmentIds;
    }

    public void setPaperAttachmentIds(String paperAttachmentIds) {
        this.paperAttachmentIds = paperAttachmentIds;
    }

    public Long getCardId() {
        return cardId;
    }

    public void setCardId(Long cardId) {
        this.cardId = cardId;
    }

    public String getMakeMethod() {
        return makeMethod;
    }

    public void setMakeMethod(String makeMethod) {
        this.makeMethod = makeMethod;
    }

    public String getPaperConfirmAttachmentIds() {
        return paperConfirmAttachmentIds;
    }

    public void setPaperConfirmAttachmentIds(String paperConfirmAttachmentIds) {
        this.paperConfirmAttachmentIds = paperConfirmAttachmentIds;
    }

    public String getRemark() {
        return remark;
    }

    public void setRemark(String remark) {
        this.remark = remark;
    }

    public String getExposedPaperType() {
        return exposedPaperType;
    }

    public void setExposedPaperType(String exposedPaperType) {
        this.exposedPaperType = exposedPaperType;
    }

    public String getRelatePaperType() {
        return relatePaperType;
    }

    public void setRelatePaperType(String relatePaperType) {
        this.relatePaperType = relatePaperType;
    }

    public String getUnexposedPaperType() {
        return unexposedPaperType;
    }

    public void setUnexposedPaperType(String unexposedPaperType) {
        this.unexposedPaperType = unexposedPaperType;
    }

    public Boolean getEnable() {
        return enable;
    }

    public void setEnable(Boolean enable) {
        this.enable = enable;
    }

    public String getOperateType() {
        return operateType;
    }

    public void setOperateType(String operateType) {
        this.operateType = operateType;
    }
}
