package com.usoft.fin.grpc.dal.mapper;

import com.usoft.fin.grpc.dal.entity.Messages;

import java.util.List;

public interface MessagesMapper {
    /**
     * deleteByPrimaryKey
     *
     * @param id
     * @return int
     */
    int deleteByPrimaryKey(Integer id);

    /**
     * insert
     *
     * @param record
     * @return int
     */
    int insert(Messages record);

    /**
     * insertSelective
     *
     * @param record
     * @return int
     */
    int insertSelective(Messages record);

    /**
     * selectByPrimaryKey
     *
     * @param id
     * @return Messages
     */
    Messages selectByPrimaryKey(Integer id);

    /**
     * updateByPrimaryKeySelective
     *
     * @param record
     * @return int
     */
    int updateByPrimaryKeySelective(Messages record);

    /**
     * updateByPrimaryKey
     *
     * @param record
     * @return int
     */
    int updateByPrimaryKey(Messages record);

    /**
     * 通过接收人UU统计消息数量
     *
     * @param msReceiverenuu 接收方uu号
     * @return
     */
    int countByMsReceiverenuu(int msReceiverenuu);

    /**
     * 通过接收人UU获取所有消息，并分页
     *
     * @param start          开始下标
     * @param pageSize       数量
     * @param msReceiverenuu 接收方uu号
     * @return
     */
    List<Messages> findListByEnuu(int start, int pageSize, int msReceiverenuu);

    /**
     * 通过接收人UU(msiread=1已读)(msiread=0未读)消息，并分页
     *
     * @param start          开始下标
     * @param pageSize       数量
     * @param msReceiverenuu 接收方uu号
     * @param msIsread       阅读状态，0：未读，1：已读,2.全部
     * @return
     */
    List<Messages> findListByEnuuAndIsread(int start, int pageSize, int msReceiverenuu, int msIsread);

    /**
     * 通过接收人UU和阅读状态获取对应状态数量
     *
     * @param msReceiverenuu 接收方uu号
     * @param msIsread       阅读状态，0：未读，1：已读，2.全部
     * @return 对应状态数量
     */
    int countByEnuuAndIsread(int msReceiverenuu, int msIsread);

    /**
     * 通过消息编号设消息为已读
     *
     * @param msCode 消息编码
     * @return
     */
    int updateIsReadByMsCode(String msCode);

}