package ru.ulstu.activity.common.service; import ru.ulstu.activity.common.model.AbstractActivity; import ru.ulstu.user.model.User; import ru.ulstu.user.service.MailService; import java.util.Map; public abstract class ActivityNotificationService { private final MailService mailService; protected ActivityNotificationService(MailService mailService) { this.mailService = mailService; } public abstract void sendCreateNotification(T entity); protected void sendForAuthor(Map variables, User author, String template, String title) { mailService.sendEmailFromTemplate(variables, author, template, title); } protected void sendForAllAuthors(Map variables, T entity, String template, String title) { entity.getActivityMembers().forEach(author -> sendForAuthor(variables, author, template, title)); } }