package rewards.internal.reward; import rewards.AccountContribution; import rewards.Dining; import rewards.RewardConfirmation; /** * Handles creating records of reward transactions to track contributions made to accounts for dining at restaurants. */ public interface RewardRepository { /** * Create a record of a reward that will track a contribution made to an account for dining. * @param contribution the account contribution that was made * @param dining the dining event that resulted in the account contribution * @return a reward confirmation object that can be used for reporting and to lookup the reward details at a later * date */ public RewardConfirmation confirmReward(AccountContribution contribution, Dining dining); }