package com.reading.platform.service;

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

/**
 * Notification Service Interface
 */
public interface NotificationService extends IService<Notification> {

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

    Notification getNotificationById(String id);

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

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

    void markAsRead(String id);

    void markAllAsRead(String recipientId, String recipientType);

    void deleteNotification(String id);

    Long getUnreadCount(String recipientId, String recipientType);

}
