package com.piggymetrics.notification.service;
import com.piggymetrics.notification.domain.NotificationType;
import com.piggymetrics.notification.domain.Recipient;
import java.util.List;
public interface RecipientService {
/**
* Finds recipient by account name
*
* @param accountName
* @return recipient
*/
Recipient findByAccountName(String accountName);
/**
* Finds recipients, which are ready to be notified
* at the moment
*
* @param type
* @return recipients to notify
*/
List<Recipient> findReadyToNotify(NotificationType type);
/**
* Creates or updates recipient settings
*
* @param accountName
* @param recipient
* @return updated recipient
*/
Recipient save(String accountName, Recipient recipient);
/**
* Updates {@link NotificationType} {@code lastNotified} property with current date
* for given recipient.
*
* @param type
* @param recipient
*/
void markNotified(NotificationType type, Recipient recipient);
}