package com.qmth.sop.business.bean.params;

import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import com.qmth.sop.common.enums.FlowApprovePassEnum;
import io.swagger.annotations.ApiModelProperty;

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

/**
 * @Description: sop发布param
 * @Param:
 * @return:
 * @Author: wngliang
 * @Date: 2023/9/4
 */
@JsonInclude(JsonInclude.Include.NON_NULL)
public class SopPublishParam extends FlowApproveParam implements Serializable {

    private static final long serialVersionUID = 1L;

    @ApiModelProperty(value = "sop单号")
    private String sopNo;

    @ApiModelProperty(value = "派单明细id")
    @JsonSerialize(using = ToStringSerializer.class)
    private Long crmDetailId;

    public SopPublishParam() {

    }

    public SopPublishParam(String crmNo, Long crmDetailId, String flowDeploymentId, FlowApprovePassEnum approve,
            String formProperties, List<String> approveUserIds) {
        setCrmNo(crmNo);
        this.crmDetailId = crmDetailId;
        setFlowDeploymentId(flowDeploymentId);
        setApprove(approve);
        setFormProperties(formProperties);
        setApproveUserIds(approveUserIds);
    }

    public SopPublishParam(String crmNo, Long crmDetailId, String flowDeploymentId, FlowApprovePassEnum approve,
            String formProperties, List<String> approveUserIds, Map<String, Object> var) {
        setCrmNo(crmNo);
        this.crmDetailId = crmDetailId;
        setFlowDeploymentId(flowDeploymentId);
        setApprove(approve);
        setFormProperties(formProperties);
        setApproveUserIds(approveUserIds);
        setVar(var);
    }

    public Long getCrmDetailId() {
        return crmDetailId;
    }

    public void setCrmDetailId(Long crmDetailId) {
        this.crmDetailId = crmDetailId;
    }

    public String getSopNo() {
        return sopNo;
    }

    public void setSopNo(String sopNo) {
        this.sopNo = sopNo;
    }
}
