using System.Collections.Generic;
using AsbCloudApp.Data;
using AsbCloudApp.Requests;
using AsbCloudApp.Services;
using System.Threading;
using System.Threading.Tasks;
namespace AsbCloudApp.Repositories;
///
/// Репозиторий для уведомлений
///
public interface INotificationRepository : ICrudRepository
{
///
/// Получение уведомлений по параметрам
///
///
///
///
///
Task> GetNotificationsAsync(int idUser,
NotificationRequest request,
CancellationToken cancellationToken);
///
/// Получение всех уведомлений
///
///
///
///
///
///
Task> GetAllAsync(int? idUser, bool? isSent, int? idTransportType,
CancellationToken cancellationToken);
///
/// Обновление уведомлений
///
///
///
///
Task UpdateRangeAsync(IEnumerable notifications, CancellationToken cancellationToken);
///
/// Удаление уведомлений по параметрам
///
///
///
///
Task DeleteAsync(NotificationDeleteRequest request,
CancellationToken cancellationToken);
///
/// Получение количества непрочтенных уведомлений
///
///
///
///
///
Task GetUnreadCountAsync(int idUser, int idTransportType, CancellationToken cancellationToken);
}