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

import cn.ey.biz.module.weaver.autoconfigure.FeignConfiguration;
import cn.ey.biz.module.weaver.common.Constants;
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;

/**
 * 消息发送
 */
@FeignClient(name= Constants.WEAVER_NAME, url="${weaver.service.url}", configuration = FeignConfiguration.class)
public interface SendCustomMessageSingleService {

    @RequestMapping(method= RequestMethod.POST, value="/api/ec/dev/message/sendCustomMessageSingle",
            consumes = MediaType.APPLICATION_FORM_URLENCODED_VALUE,
            produces = MediaType.TEXT_PLAIN_VALUE)
    SendCustomMessageSingleResponse  sendCustomMessageSingle(@RequestBody SendCustomMessageSingleRequest request);

    @Data
    class SendCustomMessageSingleRequest{
        String code;   //消息来源（见文档第四点补充）
        String workCodeList;    //userIdList/loginIdList/workCodeList/lastNameList   //接收人OA系统id/登录名/编号/接收人姓名 （任选一个填入即可，以逗号分隔）
        String creater;         //创建人 OA系统id/登录名/编号/姓名（对应接收人所传入的形式）
        String title;           //标题
        String context;         //内容
        String linkUrl;         // PC端链接
        String linkMobileUrl;   //移动端链接
        String targetId;        //消息来源code+"|"+业务id 需要修改消息状态时传入
        String bizState;        //0 表示消息初始状态是待处理 需要修改消息状态时传入
    }

    @Data
    class SendCustomMessageSingleResponse{
        String  msg;
        String code;
        String msgShowType;
        Boolean status;
    }

}
