class AbstractNotificationServiceImpl implements AbstractNotificationService<T> {

    @Transactional
    @Nonnull
    @Override
    public T updateProviderExternalUuid(@Nonnull final Long notificationId, @Nonnull final String providerExternalUuid) {
        assertNotificationIdNotNull(notificationId);
        Assert.notNull(providerExternalUuid, "Provider external uuid should not be null");
        LOGGER.debug("Updating notification provider external uuid, notification id - {}, uuid - {}", notificationId, providerExternalUuid);
        T notification = getRepository().findById(notificationId).orElseThrow(() -> new NotificationNotFoundForIdException(notificationId, getInstanceClass()));
        // Update notification external uuid
        notification.setProviderExternalUuId(providerExternalUuid);
        notification.setUpdated(LocalDateTime.now());
        // Persist notification
        notification = getRepository().save(notification);
        LOGGER.debug("Successfully updated notification external uuid for notification with id - {}, notification - {}", notification.getId(), notification);
        return notification;
    }

    public  AbstractNotificationServiceImpl();

}