package com.storlead.sms.spi;

import com.storlead.framework.common.result.Result;

/**
 * 短信验证码对外契约：发送与校验。实现位于 storlead-sms-biz，调用方仅依赖本接口即可解耦。
 */
public interface SmsCaptchaService {

    /**
     * 发送验证码
     *
     * @param mobile 手机号
     * @param scene  业务场景
     */
    Result<?> sendCaptcha(String mobile, SmsCaptchaScene scene);

    /**
     * 校验验证码
     *
     * @param mobile              手机号
     * @param code                用户输入的验证码
     * @param scene               须与发送时一致
     * @param consumeAfterSuccess 校验通过后是否删除缓存（一次性验证码建议 true）
     */
    Result<?> verifyCaptcha(String mobile, String code, SmsCaptchaScene scene, boolean consumeAfterSuccess);
}
