package cn.ey.biz.module.system.mq.producer.sms;

import cn.ey.biz.framework.mq.core.RedisMQTemplate;
import cn.ey.biz.module.system.mq.message.sms.SmsChannelRefreshMessage;
import cn.ey.biz.module.system.mq.message.sms.SmsSendMessage;
import cn.ey.biz.module.system.mq.message.sms.SmsTemplateRefreshMessage;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;

import javax.annotation.Resource;

/**
 * Sms 短信相关消息的 Producer
 */
@Slf4j
@Component
public class SmsProducerRedis implements SmsProducer {

    @Resource
    private RedisMQTemplate redisMQTemplate;

//    @Resource
//    private StreamBridge streamBridge;

    /**
     * 发送 {@link SmsChannelRefreshMessage} 消息
     */
    public void sendSmsChannelRefreshMessage() {
        SmsChannelRefreshMessage message = new SmsChannelRefreshMessage();
        redisMQTemplate.send(message);
    }

    /**
     * 发送 {@link SmsTemplateRefreshMessage} 消息
     */
    public void sendSmsTemplateRefreshMessage() {
        SmsTemplateRefreshMessage message = new SmsTemplateRefreshMessage();
        redisMQTemplate.send(message);
    }

    /**
     * 发送 {@link SmsSendMessage} 消息
     *
     * @param logId          短信日志编号
     * @param mobile         手机号
     * @param channelId      渠道编号
     * @param apiTemplateId  短信模板编号
     * @param templateParams 短信模板参数
     */
//    public void sendSmsSendMessage(Long logId, String mobile,
//                                   Long channelId, String apiTemplateId, List<KeyValue<String, Object>> templateParams) {
//        SmsSendMessage message = new SmsSendMessage().setLogId(logId).setMobile(mobile);
//        message.setChannelId(channelId).setApiTemplateId(apiTemplateId).setTemplateParams(templateParams);
//        streamBridge.send("smsSend-out-0", message);
//    }

}
