package com.gic.haoban.manage.api.service;

import java.util.List;

import com.gic.api.base.commons.ServiceResponse;
import com.gic.haoban.manage.api.dto.QywxCallBackDTO;
import com.gic.haoban.manage.api.dto.WxEnterpriseQwDTO;
import com.gic.haoban.manage.api.enums.NoticeMessageTypeEnum;

import java.util.List;

/**
 * Created by tgs on 2020/2/20.
 */
public interface MessageApiService {

    /**
     * 企微自动同步通讯录
     *
     * @param qywxCallBackDTO
     */
    void wxMessageReceive(QywxCallBackDTO qywxCallBackDTO);

    /**
     * 队列消费企业微信推送数据
     *
     * dealWxMessageMq
     * @param param
     */
    void dealWxMessage(String param);

    /**
     * 获取新的微信用户id
     *
     * @param wxEnterpriseId 微信企业id
     * @param staffId       微信用户id
     * @return {@link String }
     * @author mozhu
     * @date 2022-03-10 13:48:10
     */
    String getNewWxUserIdByStaffId(String wxEnterpriseId, String staffId);

    /**
     * 
    * @Title: sendPreMessage
    * @Description: 发送线下预约消息
    * @author xugh
    * @param enterpriseId
    * @param storeId
    * @param message
    * @return
    * @throws
     */
    ServiceResponse<Void> sendPreMessage(String enterpriseId, String storeId, String message);

    /**
     * 
    * @Title: sendOrderMessage
    * @Description: 订单发送好办通知
    * @param relationId 关联ID
    * @param valueList 有变量的情况按顺序传参
    * @return clerkId 归属导购   refundStoreId 退款收货门店
    * @throws
     */
    ServiceResponse<Void> sendOrderMessage(String enterpriseId, NoticeMessageTypeEnum noticeType, String relationId,
          String refundStoreId ,  String clerkId, String memberId, List<String> valueList);

    /**
     * 通过通讯录-鸿星尔克
     * @param wxEnterpriseId
     * @param staffName
     * @param qwDTO
     * @param qwUserId
     * @param mainDeptId
     * @param position
     * @param gender
     * @param mobile
     * @param nationcode
     */
    public void updateForSyncStaff(String wxEnterpriseId, String staffName , WxEnterpriseQwDTO qwDTO , String qwUserId , String mainDeptId , String position ,
                                   Integer gender, String mobile , String nationcode) ;

}
