package com.njcn.msgpush.module.push.client.sender.fallback;

import com.njcn.msgpush.module.push.client.sender.SendOutcome;
import com.njcn.msgpush.module.push.client.sender.SendResult;
import com.njcn.msgpush.module.push.client.sender.SmsSender;
import com.njcn.msgpush.module.push.dal.dataobject.message.MessageRecordDO;

import java.util.ArrayList;
import java.util.List;

/**
 * 短信渠道固定结果 sender。
 * 用于替代返回 null，让主流程始终拿到可执行对象。
 */
public class FixedResultSmsSender extends AbstractFixedResultSender implements SmsSender {

    public FixedResultSmsSender(SendOutcome outcome, String message) {
        super(outcome, message);
    }

    @Override
    public SendResult sendSms(MessageRecordDO messageRecord) {
        return this.buildResult();
    }

    @Override
    public List<SendResult> sendBatchSms(List<MessageRecordDO> messageList) {
        List<SendResult> results = new ArrayList<>(messageList.size());
        for (int i = 0; i < messageList.size(); i++) {
            results.add(this.buildResult());
        }
        return results;
    }

    @Override
    public void queryTemplate(String templateIdentifier) {
        // 固定结果 sender 不触达第三方，无需查询模板。
    }
}
