package cn.stylefeng.workflow.api.pojo.config.node;

import cn.stylefeng.roses.kernel.rule.annotation.ChineseDescription;
import cn.stylefeng.workflow.api.pojo.config.node.activity.NodeActivity;
import cn.stylefeng.workflow.api.pojo.config.node.approver.ApproverConfig;
import cn.stylefeng.workflow.api.pojo.config.node.bpmn.BpmnConfig;
import cn.stylefeng.workflow.api.pojo.config.node.button.NodeButtonPermission;
import cn.stylefeng.workflow.api.pojo.config.node.condition.NodeCondition;
import cn.stylefeng.workflow.api.pojo.config.node.deployflow.DeployFlowConfig;
import cn.stylefeng.workflow.api.pojo.config.node.event.NodeEvent;
import cn.stylefeng.workflow.api.pojo.config.node.form.FormPermission;
import cn.stylefeng.workflow.api.pojo.config.node.listener.NodeListener;
import cn.stylefeng.workflow.api.pojo.config.node.notice.NodeNotice;
import cn.stylefeng.workflow.api.pojo.config.node.subflow.NodeSubFlow;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import lombok.Data;

import java.util.List;
import java.util.Map;

@Data
@JsonIgnoreProperties(ignoreUnknown = true)
public class NodeData {

    @ChineseDescription("节点按钮权限的配置")
    private NodeButtonPermission nodeButtonPermission;

    @ChineseDescription("审批人配置")
    private ApproverConfig approverConfig;

    @ChineseDescription("表单字段权限")
    private List<FormPermission> formPermission;

    @ChineseDescription("节点事件")
    private List<NodeEvent> nodeEventList;

    @ChineseDescription("节点http活动")
    private NodeActivity nodeActivity;

    @ChineseDescription("条件")
    private NodeCondition nodeCondition;

    @ChineseDescription("消息监听")
    private NodeListener nodeListener;

    @ChineseDescription("子流程")
    private NodeSubFlow nodeSubFlow;

    @ChineseDescription("通知信息")
    private NodeNotice nodeNotice;

    @ChineseDescription("bpmn配置")
    private BpmnConfig bpmnConfig;

    @ChineseDescription("持续集成-构建流程配置")
    private DeployFlowConfig deployFlowConfig;

    @ChineseDescription("节点拓展属性")
    private Map<String, Object> nodeExtendedAttributes;

}