package cn.stylefeng.workflow.instance.api.pojo.request;

import cn.stylefeng.roses.kernel.rule.annotation.ChineseDescription;
import cn.stylefeng.workflow.api.pojo.InstanceVariable;
import jakarta.validation.constraints.NotNull;
import lombok.Data;

import java.util.Set;

@Data
public class WorkflowStartRequest {

    @NotNull(message = "流程发起方式不能为空")
    @ChineseDescription("流程发起方式：10-页面发起，20-接口发起")
    private Integer workflowStartType;

    @NotNull(message = "流程定义id不能为空")
    @ChineseDescription("流程定义id")
    private Long definitionId;

    @ChineseDescription("流程变量集合")
    private InstanceVariable instanceVariable;

    @ChineseDescription("提交人id，发起人id")
    private Long applicant;

    @ChineseDescription("发起人的组织机构id，以哪个身份发起")
    private Long applicantOrgId;

    @ChineseDescription("发起人的职位id，以哪个身份发起")
    private Long applicantPositionId;

    @ChineseDescription("草稿id")
    private Long draftId;

    @ChineseDescription("抄送人员列表")
    private Set<Long> copyToUserIdList;

    private Long parentInstanceId = -1L;

    private Long parentNodeId = -1L;

    private Boolean paramSendParentFlag = false;

    private Long flowInstanceId;

    private String primaryKeyId;

}
