package cn.stylefeng.workflow.instance.modular.manage.pojo.request;

import cn.stylefeng.roses.kernel.rule.annotation.ChineseDescription;
import cn.stylefeng.roses.kernel.rule.pojo.request.BaseRequest;
import jakarta.validation.constraints.NotNull;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.util.List;

@EqualsAndHashCode(callSuper = true)
@Data
public class RuntimeNodeRequest extends BaseRequest {

    @NotNull(message = "主键不能为空", groups = {edit.class, delete.class})
    @ChineseDescription("主键")
    private Long ruNodeId;

    @ChineseDescription("流程运行实例id")
    private Long instanceId;

    @ChineseDescription("流程模型id")
    private Long modelId;

    @ChineseDescription("流程定义id")
    private Long definitionId;

    @NotNull(message = "流程节点id，对应flow_design_node的主键id不能为空", groups = {add.class, edit.class})
    @ChineseDescription("流程节点id，对应flow_design_node的主键id")
    private Long nodeId;

    @ChineseDescription("节点名称，同flow_design_node表")
    private String nodeName;

    @ChineseDescription("节点类型，同flow_design_node表")
    private Integer nodeType;

    @ChineseDescription("节点流经状态：-10-空状态，10-未进行，20-进行中，30-已完成，40-已跳过，50-已拒绝，60-已退回，70-已转交")
    private Integer nodeStatus;

    @ChineseDescription("退回类型：1-退回当前节点，2-退回所有节点")
    private Integer backType;

    @ChineseDescription("流程实例id集合，查询条件")
    private List<Long> instanceIdList;

}
