package cn.novalon.manage.notify.core.service;

import cn.novalon.manage.notify.core.domain.SysUserMessage;
import reactor.core.publisher.Flux;
import reactor.core.publisher.Mono;

public interface ISysUserMessageService {

    Flux<SysUserMessage> getMessagesByUser(Long userId);

    Mono<Long> getUnreadCount(Long userId);

    Flux<SysUserMessage> getUnreadMessages(Long userId);

    Mono<SysUserMessage> createMessage(SysUserMessage message);

    Mono<SysUserMessage> markAsRead(Long id);

    Mono<Void> deleteMessage(Long id);
}