public void processEvent(@Observes ContractCreatedEvent signupEvent) {
        LOGGER.debug("Processing signup event {0}", signupEvent);
        if (signupEvent.isApprovalRequired()) {
            CreateNotificationDto newNotification = new CreateNotificationDto();
            String orgId = signupEvent.getApiOrgId();

            RecipientDto planAdmins = new RecipientDto()
                 .setRecipient(PermissionType.planAdmin.name())
                 .setOrgId(orgId)
                 .setRecipientType(RecipientType.PERMISSION);

            newNotification.setRecipient(List.of(planAdmins))
                           .setReason(APIMAN_CLIENT_CONTRACT_REASON)
                           .setReasonMessage("Signup request for API")
                           .setCategory(NotificationCategory.API_ADMINISTRATION)
                           .setSource("/apiman/notifications/contracts/approvals")
                           .setPayload(signupEvent);

            LOGGER.debug("Sending notification for approval of contract {0} from client {1} version {2}",
                 signupEvent.getContractId(), signupEvent.getClientId(), signupEvent.getClientVersion());

            notificationService.sendNotification(newNotification);
        }
    }
Accept a {@link ContractCreatedEvent} and produce a {@link #APIMAN_CLIENT_CONTRACT_REASON} notification.

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