using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using UserManagement.Common.GenericRespository;
using UserManagement.Data;
using UserManagement.Data.Resources;

namespace UserManagement.Repository
{
    public interface IUserNotificationRepository : IGenericRepository<UserNotification>
    {
        void CreateUsersDocumentNotifiction(List<Guid> userIds, Guid documentId);
        Task<List<User>> CreateRolesDocumentNotifiction(List<Guid> roleIds, Guid documentId);
        Task<NotificationList> GetUserNotifications(NotificationResource documentResource);
        Task MarkAsRead(Guid notificationId);
        Task MarkAsReadByDocumentId(Guid documentId);
        Task MarkAllAsRead();
        void AddUserNotificationByReminderScheduler(ReminderScheduler reminderScheduler);
        Task SendNotification(Guid userId);
        Task SendNotification(List<Guid> userIds);
    }
}
