/*
 * Arrebol Consultancy copyright.
 * 
 * This code belongs to Arrebol Consultancy
 * its use, redistribution or modification are prohibited 
 * without written authorization from Arrebol Consultancy.
 */
package com.arrebol.taxiservicios.controller.notification;

import com.arrebol.taxiservicios.model.core.User;
import com.arrebol.taxiservicios.model.enums.DeliveryStatusType;
import com.arrebol.taxiservicios.model.notification.StopNotification;
import com.arrebol.taxiservicios.model.stocktaking.ServiceOrderNotification;
import java.util.List;

/**
 *
 * @author Carlos Janitzio Zavala Lopez <janitzio.zavala@arrebol.com.mx>
 */
public interface NotificationService {

    public int countNotificationByUserId(String userId);

    public List<ServiceOrderNotification> findNotificationDetailsByUserId(String userId, DeliveryStatusType statusType);

    public boolean isActiveNotificationByUser(String userId);

    public void stopNotifiationByUser(String userId, StopNotification notification);

    public List<User> findNotificationUsers(boolean isOnStopNotification);

    public boolean updateStopNotificationData(List<StopNotification> newNotifications);

    public boolean deleteNotificationRecipient(String orderNotificationId, String userId);

    public boolean cleanAllNotificationsByUser(String userId);

}
