package rewards.internal.restaurant; import rewards.Dining; import rewards.internal.account.Account; /** * Determines if benefit is available for an account for dining. * * A value object. A strategy. Scoped by the Resturant aggregate. */ public interface BenefitAvailabilityPolicy { /** * Calculates if an account is eligible to receive benefits for a dining. * @param account the account of the member who dined * @param dining the dining event * @return benefit availability status */ public boolean isBenefitAvailableFor(Account account, Dining dining); }