package com.ai.da.service;

import com.ai.da.common.response.PageBaseResponse;
import com.ai.da.mapper.primary.entity.Notification;
import com.ai.da.model.dto.GetNotificationDTO;
import com.ai.da.model.vo.NotificationVO;
import com.ai.da.model.dto.PublishSysNotificationDTO;
import com.baomidou.mybatisplus.extension.service.IService;

import java.util.List;
import java.util.Map;

public interface MessageCenterService extends IService<Notification> {

    Map<String, Long> getAllTypeMessageUnreadCount();

    PageBaseResponse<NotificationVO> getHistoryNotification(GetNotificationDTO getNotificationDTO);

    void prePushMessage(Notification notification);

    void pushMessage(String type, Long receiverId);

    void cancelPushMessage(String type, Long senderId, Long receiverId, Long portfolioId, Long commentId);

    Boolean setReadStatus(List<Long> notificationIdList, String type);

    void setReadAll(String type);

    void publishSystemNotification(PublishSysNotificationDTO message);

    void videoFinishedMsg(Long userId, String projectName, boolean isSuccess);
}
