class DelinquentAccountEventHandler implements ContextualEventMessageHandler<Account> {

   @Override
   public void handleEvent(Account account, PlatformMessage message) {
      Preconditions.checkArgument(account != null, "No account context was provided.");
      try{
         // get current service level.
         IrisSubscription irisSubscription = this.getIrisSubscription(account);
         
         String messageKey =
               irisSubscription.getServiceLevels().parallelStream().anyMatch(serv -> serv.isPromon()) ?
               Notifications.DelinquentAccountPro.KEY : 
               Notifications.DelinquentAccount.KEY;
         
         updateSubscription(account);
         notification(account, messageKey);
      }catch (Exception e){
         FAILURE_TOTAL_COUNTER.inc();
         LOGGER.error("Error processing delinquent account", e);
      }
   }

   @Inject public  DelinquentAccountEventHandler(PlaceDAO placeDao, SubscriptionUpdater subscriptionUpdater, PlatformMessageBus platformBus, SubscriptionManager subscriptionManager);

}