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

/**
 * 邮件验证码服务
 *
 * @author jeesharp
 */
public interface EmailCodeService {

    /**
     * 发送邮件验证码（生成并存储到 Redis，通过邮件网关发送）
     *
     * @param email 邮箱地址
     * @param scene 场景：LOGIN、REGISTER、RESET_PWD、BIND
     * @return 过期秒数
     */
    int sendCode(String email, String scene);

    /**
     * 校验邮件验证码
     *
     * @param email    邮箱地址
     * @param scene    场景
     * @param emailCode 用户输入的验证码
     * @return true-校验通过
     */
    boolean verify(String email, String scene, String emailCode);

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