package cn.ey.biz.module.weaver.api;

import cn.ey.biz.module.weaver.common.Constants;
import cn.ey.biz.module.weaver.common.RSP;
import cn.ey.biz.module.weaver.autoconfigure.FeignConfiguration;
import lombok.Data;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.http.MediaType;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import java.util.List;

/**
 *  流程数据：可创建的流程列表 (对外)
 *
 */
@FeignClient(name= Constants.WEAVER_NAME, url="${weaver.service.url}", configuration = FeignConfiguration.class)
public interface GetCreateWorkflowListService {

    @RequestMapping(method= RequestMethod.POST, value="/api/workflow/paService/getCreateWorkflowList",
            consumes = MediaType.APPLICATION_FORM_URLENCODED_VALUE,
            produces = MediaType.TEXT_PLAIN_VALUE)
    RSP<List<CreateWorkflowListconditions>> getCreateWorkflowList(@RequestBody CreateWorkflowListRequest request);

    @Data
    class CreateWorkflowListRequest{
        CreateWorkflowListconditions   conditions;  //非必填,高级搜索条件 高级搜索条件 - wfTypeName : 流程类型名称。 - wfName : 流程路径名称。 - wfTypeIds : 流程类型ids(workflowtypeIds)。 传入多个流程类型id时通过 ',' 号分隔 - wfIds : 流程路径ids(workflowids)。 传入多个流程路径id时通过',' 号分隔
        String userId;		             //非必填	要查询的用户id ,不传取当前登录用户
    }

    @Data
    class CreateWorkflowListconditions{
        String wfIds;
        String wfName;
        String wfTypeIds;
        String wfTypeName;
    }

    @Data
    class CreateWorkflowListResponse{
        String formId;		      //表单id
        String workflowId;		  //流程id
        String workflowName;	  //流程名称
        String workflowTypeId;	  //流程类型id
        String workflowTypeName;  //流程类型名称
    }

}
