package com.sqx.modules.errand.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.sqx.common.sms.SmsSendResult;
import com.sqx.common.utils.PageUtils;
import com.sqx.modules.app.entity.UserEntity;
import com.sqx.modules.errand.dto.SmsTemplateDTO;
import com.sqx.modules.errand.dto.SmsTemplateQueryDTO;
import com.sqx.modules.errand.entity.TbIndentSmsTemplate;

public interface TbIndentSmsTemplateService extends IService<TbIndentSmsTemplate> {

    void saveTemplate(SmsTemplateDTO template);

    void updateTemplate(SmsTemplateDTO template);

    PageUtils templatePage(SmsTemplateQueryDTO queryDTO);

    /**
     * 短信发送
     * @param smsTemplateId 模板id
     * @param fromUser 发送人信息
     * @param toPhone 收件人手机号
     * @return 短信发送结果
     */
    SmsSendResult sendSms(Long smsTemplateId, UserEntity fromUser, String toPhone);

    /**
     * 短信发送
     * @param smsTemplateId 模板id
     * @param fromPhone 发送人手机号码
     * @param fromUserName 发送人名称
     * @param fromUserId 发送人id
     * @param toPhone 收件人手机号
     * @return 短信发送结果
     */
    SmsSendResult sendSms(Long smsTemplateId, String fromPhone, String fromUserName, Long fromUserId, String toPhone);

    /**
     * 获取短信发送价格
     * @return 短信价格
     */
    Double getPriceOfSms();
}
