package com.hzs.member.sms.service;

/**
 * 阿里短信发送服务
 */
public interface IApiAliSmsService {

    /**
     * 短信验证码
     *
     * @param phone      手机号码
     * @param checkKey   验证码KEY -- 为空使用默认
     * @param sendTimKey 验证码重复发送间隔KEY -- 为空使用默认
     * @param pkMember   会员ID -- 如果有值，优先缓存使用
     * @return
     */
    String sendCode(String phone, String checkKey, String sendTimKey, Long pkMember);

    /**
     * 校验短信验证码
     *
     * @param phone    手机号码 -- 会员ID有值，手机号码可以为空
     * @param smsCode  短信验证码
     * @param checkKey 验证码KEY -- 为空使用默认
     * @param pkMember 会员ID -- 如果有值，优先缓存使用
     * @return
     */
    String checkCode(String phone, String smsCode, String checkKey, Long pkMember);

//    /**
//     * 登录发送验证码
//     *
//     * @param phone 手机号码
//     * @return
//     */
//    String sendLoginCode(String phone);
//
//    /**
//     * 校验登录验证码
//     *
//     * @param phone   手机号码
//     * @param smsCode 短信验证码
//     * @return
//     */
//    String checkLoginCode(String phone, String smsCode);

//    /**
//     * 注册发送验证码
//     *
//     * @param phone 手机号码
//     * @return
//     */
//    String sendRegisterCode(String phone);
//
//    /**
//     * 校验注册验证码
//     *
//     * @param phone   手机号码
//     * @param smsCode 短信验证码
//     * @return
//     */
//    String checkRegisterCode(String phone, String smsCode);

    /**
     * 找回密码发送验证码
     *
     * @param phone    手机号码
     * @param pkMember 会员ID
     * @return
     */
    String sendRecoverCode(String phone, Long pkMember);

    /**
     * 校验找回密码验证码
     *
     * @param phone    手机号码
     * @param smsCode  短信验证码
     * @param pkMember 会员ID
     * @return
     */
    String checkRecoverCode(String phone, String smsCode, Long pkMember);

    /**
     * 重置支付密码发送验证码
     *
     * @param phone 手机号码
     * @return
     */
    String resetPayPasswordCode(String phone, Long pkMember);

    /**
     * 校验重置支付密码验证码
     *
     * @param phone   手机号码
     * @param smsCode 短信验证码
     * @return
     */
    String checkPayPasswordCode(String phone, String smsCode, Long pkMember);

}
