package com.vetti.common.service.verification;

import com.vetti.common.entity.verification.BaseTemplateEmail;

public interface VerificationService {

    /**
     * 发送邮箱验证码（内容走的配置文件）
     *
     * @param email 收件人邮箱
     * @return
     */
    boolean sendVerificationCode(String email);

    /**
     * 发动邮箱验证码 （内容走的官网 配置好的模板）
     *
     * @param email 收件人邮箱
     * @return
     */
    boolean sendVerificationRoutezVerificationCode(String email);

    /**
     * 使用 em7941.routez.app 域名发送验证码（官网模板）
     *
     * @param email 收件人邮箱
     * @return
     */
    void sendVerificationEm7941VerificationCode(String email);

    /**
     * 发动邮箱验证码 （内容走的官网配置模板）
     *
     * @param email         收件人邮箱
     * @param code     验证码
     * @param templateId    官网模板ID
     * @param templateEmail 模板参数实体
     * @return
     */
    boolean sendTemplateCode(String email,String code, String templateId, BaseTemplateEmail templateEmail);

    /**
     * 发送面试邀请邮件 （内容走的官网配置模板）
     *
     * @param email         收件人邮箱
     * @param templateId    官网模板ID
     * @param templateEmail 模板参数实体
     * @return
     */
    boolean sendInterviewTemplate(String email,String templateId, BaseTemplateEmail templateEmail);

    /**
     * 验证验证码是否有效
     *
     * @param email 收件人邮箱
     * @param code
     * @return
     */
    boolean verifyCode(String email, String code);

    /**
     * 发送手机验证码
     *
     * @param phone 收件人手机号
     * @return
     */
    void sendPhoneVerificationCode(String phone);

}
