/*
* Copyright 2012 Nodeable Inc
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.streamreduce.core.service;
import com.streamreduce.core.model.Account;
import com.streamreduce.core.model.Connection;
import com.streamreduce.core.model.User;
import com.streamreduce.core.model.messages.MessageComment;
import com.streamreduce.core.model.messages.SobaMessage;
import java.util.List;
import net.sf.json.JSONObject;
public interface EmailService {
void setEnabled(boolean enabled);
void sendPasswordResetEmail(User user, boolean mobile);
// confirmation link
void sendNewUserActivationEmail(User user);
// confirmation link for invite
void sendInviteUserActivationEmail(User user);
// new user or invited user setup is done, let them know
void sendUserAccountSetupCompleteEmail(User user);
// new account has insights available
void sendInsightsAvailableEmail(List<User> users);
void sendBugReport(String username, String company, String summary, String details, String debugInfo);
// void sendDirectMessageEmail(List<User> userList, SobaMessage sobaMessage);
void sendCommentAddedEmail(Account account, SobaMessage message, MessageComment comment);
void sendUserMessageAddedEmail(User sender, SobaMessage sobaMessage);
void sendUserMessageEmail(User user, SobaMessage message, JSONObject payload);
void sendConnectionBrokenEmail(Connection connection);
}