package com.reading.platform.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.reading.platform.entity.Notification;

/**
 * Notification Service Interface
 */
public interface NotificationService {

    Notification createNotification(Long tenantId, Long senderId, String senderRole, String title, String content,
                                     String type, String recipientType, Long recipientId);

    Notification getNotificationById(Long id);

    Page<Notification> getNotificationPage(Long tenantId, Integer pageNum, Integer pageSize, String type, Integer isRead);

    Page<Notification> getMyNotifications(Long recipientId, String recipientType, Integer pageNum, Integer pageSize, Integer isRead);

    void markAsRead(Long id);

    void markAllAsRead(Long recipientId, String recipientType);

    void deleteNotification(Long id);

    Long getUnreadCount(Long recipientId, String recipientType);

}
