package com.jeesharp.business.modules.member.service;

/**
 * 短信验证码服务
 *
 * @author jeesharp
 */
public interface SmsCodeService {

    /**
     * 发送验证码（生成并存储到 Redis，可扩展对接短信网关）
     *
     * @param mobile 手机号
     * @param scene  场景：LOGIN、REGISTER、RESET_PWD、BIND
     * @return 过期秒数
     */
    int sendCode(String mobile, String scene);

    /**
     * 校验验证码
     *
     * @param mobile  手机号
     * @param scene   场景
     * @param smsCode 用户输入的验证码
     * @return true-校验通过
     */
    boolean verify(String mobile, String scene, String smsCode);

    /**
     * 校验并删除验证码（校验通过后删除，防止重复使用）
     */
    boolean verifyAndRemove(String mobile, String scene, String smsCode);
}
