package com.bohuikeji.delivery.backstage.service;

import javax.servlet.http.HttpServletRequest;
import java.math.BigDecimal;
import java.util.Map;

/**
 * 短信发送接口
 */
public interface IGmsService {

    /**
     * 发送验证码
     * @return
     */
    String sendCode(String phone, HttpServletRequest request);

    /**
     * 校验验证码
     * @param phone 手机号
     * @param code 验证码
     * @return
     */
    boolean verifyCode(String phone,String code);

    /**
     * 接单提醒
     * @param phone 发件人电话
     * @param orderNum 订单号
     * @return
     */
    boolean sendOrderReceipt(String phone,String orderNum);

    /**
     * 收货提醒
     * @param phone 发件人电话
     * @param orderNum 订单号
     * @return
     */
    boolean sendOrderSign(String phone,String orderNum);

    /**
     * 去派送短信提醒
     * @param phone 收件人电话
     * @param orderNum 订单号
     * @return
     */
    boolean sendOrderSend(String phone,String orderNum);

    /**
     * 确认收货短信提醒
     * @param phone 收件人电话
     * @param orderNum 订单号
     * @return
     */
    boolean sendOrderEnd(String phone,String orderNum);

    /**
     * 发送无服务告知
     * @param phone
     * @param region
     * @return
     */
    boolean sendNoServerMsg(String phone,String region);

    /**
     * 客户订单在规定时间内未知自动取下推送短信
     * @param phone
     * @param orderNum
     * @return
     */
    boolean sendCancelMsg(String phone,String orderNum);

    /**
     * 处理营销棋手提交审核发送短信
     * @param phone
     * @param orderNum
     * @return
     */
    boolean sendMarketMsg(String phone);

    /**
     * 发送订单补充支付差价短信
     * @param phone 手机号码
     * @param orderNum 订单号
     * @param price 差价金额
     * @param url 付款链接
     * @return
     */
    boolean sendOrderSupply(String phone, String orderNum,BigDecimal price,String url);

    /**
     * 发送支付超时取消通知
     * @param phone 手机号
     * @param orderNum 订单号
     * @return
     */
    boolean sendOrderPayTimeOut(String phone,String orderNum);

    /**
     * 发送任意内容短信
     * @param phone 手机号
     * @param txt 文本
     * @return
     */
    boolean sendTxt(String phone,String txt);

    /**
     * 客户发送消息开关
     * @param phone
     * @param templateCode
     * @param params
     * @return
     */
    boolean thirdMessage(String phone,String num,String templateCode, Map<String,Object> params);

}
