public void processEvent(@Observes ContractApprovalEvent approvalEvent) {
        LOGGER.debug("Processing contract approval event: {0}", approvalEvent);

        RecipientDto planAdmins = new RecipientDto()
             .setRecipient(PermissionType.clientAdmin.name())
             .setOrgId(approvalEvent.getClientOrgId())
             .setRecipientType(RecipientType.PERMISSION);

        CreateNotificationDto newNotification = new CreateNotificationDto()
             .setRecipient(List.of(planAdmins))
             .setCategory(NotificationCategory.API_ADMINISTRATION)
             .setSource("/apiman/notifications/contracts/approvals")
             .setPayload(approvalEvent);

        if (approvalEvent.isApproved()) {
            newNotification.setReason(APIMAN_CONTRACT_APPROVED_REASON);
            newNotification.setReasonMessage("Signup was approved!");
        } else {
            newNotification.setReason(APIMAN_CONTRACT_REJECTED_REASON);
            newNotification.setReasonMessage("Signup was rejected: " + approvalEvent.getRejectionReason());
        }

        notificationService.sendNotification(newNotification);
    }
When a contract has been approved, send notification(s).

@author Marc Savy {@literal <marc@blackparrotlabs.io>}
manager/api/rest-impl/src/main/java/io/apiman/manager/api/notifications/producers/ContractApprovalNotificationProducer.java