package com.yonge.cooleshow.bbs.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.yonge.cooleshow.bbs.dto.MessageReadDto;
import com.yonge.cooleshow.bbs.dto.PrivateMessagePersonVo;
import com.yonge.cooleshow.bbs.vo.BbsPrivateMessageVo;
import com.yonge.cooleshow.bbs.dto.search.BbsPrivateMessageSearch;
import com.yonge.cooleshow.bbs.entity.BbsPrivateMessage;

import java.util.List;

/**
 * 私信 服务类
 * @author liweifan
 * @date 2022-06-09
 */
public interface BbsPrivateMessageService extends IService<BbsPrivateMessage>  {

	/**
     * 查询详情
     * @author liweifan
 	 * @date 2022-06-09
     */
	BbsPrivateMessageVo detail(Long id);

    /**
     * 分页查询
     * @author liweifan
 	 * @date 2022-06-09
     */
    IPage<BbsPrivateMessageVo> selectPage(IPage<BbsPrivateMessageVo> page, BbsPrivateMessageSearch query);

	/**
	 * 私信人员列表
	 *
	 * @param page 分页
	 * @param query 条件
	 * @return
	 */
    IPage<PrivateMessagePersonVo> selectPersonPage(IPage<PrivateMessagePersonVo> page, BbsPrivateMessageSearch query);

	/**
	 * 设置已读
	 *
	 * @param readDto 已读信息
	 * @return
	 */
	boolean read(MessageReadDto readDto);

	/**
	 * 私信人员已读消息列表
	 *
	 * @return
	 */
	IPage<BbsPrivateMessage> selectReadMessagePage(IPage<BbsPrivateMessage> page, BbsPrivateMessageSearch query);

	/**
	 * 私信未读消息列表
	 *
	 * @param query
	 * @return
	 */
	List<BbsPrivateMessage> selectUnreadMessage(BbsPrivateMessageSearch query);
}