using FutureMailAPI.DTOs;

namespace FutureMailAPI.Services
{
    public interface INotificationService
    {
        Task<ApiResponse<NotificationDeviceResponseDto>> RegisterDeviceAsync(int userId, NotificationDeviceRequestDto request);
        Task<ApiResponse<bool>> UnregisterDeviceAsync(int userId, string deviceId);
        Task<ApiResponse<NotificationSettingsDto>> GetNotificationSettingsAsync(int userId);
        Task<ApiResponse<bool>> UpdateNotificationSettingsAsync(int userId, NotificationSettingsDto settings);
        Task<ApiResponse<NotificationListResponseDto>> GetNotificationsAsync(int userId, NotificationListQueryDto query);
        Task<ApiResponse<bool>> MarkNotificationAsReadAsync(int userId, string notificationId);
        Task<ApiResponse<bool>> MarkAllNotificationsAsReadAsync(int userId);
        Task<ApiResponse<bool>> SendNotificationAsync(int userId, NotificationMessageDto notification);
    }
}