package org.dromara.resource.service;

import org.dromara.common.core.enums.SmsType;
import org.dromara.resource.api.domain.TencentSmsConfig;
import org.dromara.resource.domain.vo.SysSmsVo;
import org.dromara.resource.domain.bo.SysSmsBo;
import org.dromara.common.mybatis.core.page.TableDataInfo;
import org.dromara.common.mybatis.core.page.PageQuery;

import java.util.Collection;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;

/**
 * 短信Service接口
 *
 * @author sunzexing
 * @date 2024-03-27
 */
public interface ISysSmsService {

    /**
     * 查询短信
     */
    SysSmsVo queryById(Long id);

    /**
     * 查询短信列表
     */
    TableDataInfo<SysSmsVo> queryPageList(SysSmsBo bo, PageQuery pageQuery);

    /**
     * 查询短信列表
     */
    List<SysSmsVo> queryList(SysSmsBo bo);

    /**
     * 新增短信
     */
    Boolean insertByBo(SysSmsBo bo);

    /**
     * 修改短信
     */
    Boolean updateByBo(SysSmsBo bo);

    /**
     * 校验并批量删除短信信息
     */
    Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);


    /*
     * @Param
     * @Return
     * @Author sunzexing
     * @Date 2024-03-27 13:44
     * 说明：发送公众号登录验证码
     **/

    Boolean sendMpSmsCode(String phone);


    public  Boolean sendSmsCode(SmsType smsType,
                                       String phonenumber,
                                       LinkedHashMap<String, String> param,
                                       Map smsMap);
    Boolean sendMpSmsCode(String domain, String phone);
}
