text: #
  # ============LICENSE_START==========================================
  # org.onap.vvp/engagementmgr
  # ===================================================================
  # Copyright © 2017 AT&T Intellectual Property. All rights reserved.
  # ===================================================================
  #
  # Unless otherwise specified, all software contained herein is licensed
  # under the Apache License, Version 2.0 (the “License”);
  # you may not use this software except in compliance with the License.
  # You may obtain a copy of the License at
  #
  #             http://www.apache.org/licenses/LICENSE-2.0
  #
  # Unless required by applicable law or agreed to in writing, software
  # distributed under the License is distributed on an "AS IS" BASIS,
  # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  # See the License for the specific language governing permissions and
  # limitations under the License.
  #
  #
  #
  # Unless otherwise specified, all documentation contained herein is licensed
  # under the Creative Commons License, Attribution 4.0 Intl. (the “License”);
  # you may not use this documentation except in compliance with the License.
  # You may obtain a copy of the License at
  #
  #             https://creativecommons.org/licenses/by/4.0/
  #
  # Unless required by applicable law or agreed to in writing, documentation
  # distributed under the License is distributed on an "AS IS" BASIS,
  # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  # See the License for the specific language governing permissions and
  # limitations under the License.
  #
  # ============LICENSE_END============================================
  #
  # ECOMP is a trademark and service mark of AT&T Intellectual Property.
  from engagementmanager.models import Notification, IceUserProfile
  from engagementmanager.serializers import ThinNotificationModelSerializer
  from engagementmanager.service.logging_service import LoggingServiceFactory
  
  logger = LoggingServiceFactory.get_logger()
  
  
  def num_of_notifications_for_user(user_uuid):
      user = IceUserProfile.objects.get(uuid=user_uuid)
      amountOfnotificationForUser = Notification.objects.filter(
          user=user, is_read=False).filter().count()
      return amountOfnotificationForUser
  
  
  def pull_recent_notifications(user_uuid, offset, limit):
      ModifiedNotificationsSet = []
      logger.debug("Pulling unread notifications from DB")
      user = IceUserProfile.objects.get(uuid=user_uuid)
      notificationsList = Notification.objects.filter(user=user).order_by(
          'is_read', '-activity__create_time')[
              int(offset):int(offset) + int(limit)]
      num_of_objects = Notification.objects.filter(user=user).count()
      for notif in notificationsList:
          serializedNotification = ThinNotificationModelSerializer(notif).data
          ModifiedNotificationsSet.append(serializedNotification)
          notif.is_read = True
          notif.save()
      return ModifiedNotificationsSet, num_of_objects
  
  
  def reset_num_of_notifications_for_user(user_uuid):
      user = IceUserProfile.objects.get(uuid=user_uuid)
      notificationForUser = Notification.objects.filter(user=user, is_read=False)
      for notif in notificationForUser:
          notif.is_read = True
          notif.save()
  