class PushNotificationSubscriptionServiceImpl implements PushNotificationSubscriptionService {

    @Transactional
    @Nonnull
    @Override
    public PushNotificationSubscription createPushNotificationSubscription(@Nonnull final Long userId, @Nonnull final PushNotificationSubscriptionDto subscriptionDto) {
        assertUserIdNotNull(userId);
        Assert.notNull(subscriptionDto, "Subscription DTO should not be null");
        // Load user
        final User user = userService.getUserById(userId);
        assertNoSubscriptionExistsForUser(user);
        // Create new subscription
        PushNotificationSubscription subscription = new PushNotificationSubscription();
        subscriptionDto.updateDomainEntityProperties(subscription);
        subscription.setUser(user);
        // Persist subscription
        subscription = pushNotificationSubscriptionRepository.save(subscription);
        LOGGER.debug("Successfully created push notification subscription with id - {}, subscription - {}", subscription.getId(), subscription);
        return subscription;
    }

    public  PushNotificationSubscriptionServiceImpl();

}