package com.jxy.marketall.mapper;

import com.jxy.marketall.dto.*;
import com.jxy.marketall.entity.MarketallPage;
import com.jxy.marketall.entity.Message;
import com.jxy.marketall.vo.AllMsgVo;
import com.jxy.marketall.vo.PrivateMsgVo;
import com.jxy.marketall.vo.QueryVo;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * @Description TODO
 * @Date 2023/2/13 14:55
 * @Author 杜懿
 */
public interface MessageMapper{

/*************************************** page相关接口
 * @param page
 * @param coinType********************************************************/
    //用户留言：先根据前端传参确定page_id
    public Long getPageIdByPageName(@Param("page") String page,@Param("coinType") String coinType);

    public long insertPage(@Param("vo") MarketallPage vo);

    public PageDetailDto getPageDetail(@Param("pageId") long pageId);

    public Long getPageChooseByUserId(@Param("pageId") long pageId, @Param("userId") long userId);

/*************************************** message相关接口 ********************************************************/
    public boolean insertMessageByUser(@Param("dto") MsgInsertDto dto);

    public boolean updateMessageStatusByMsgId(@Param("msgId") Long msgId);

    public List<BackendMsgDto> getAllMsgByStatusAndTime(@Param("vo") AllMsgVo vo);

    public List<Message> getMsgByPage(@Param("pageId") Long pageId);

    public long getAllMsgCountByCondition(@Param("vo") AllMsgVo vo);

    public Message getMsgByMsgId(@Param("id") Long id);

    /** 获取每日留言数 */
    public List<DailyMsgCountDto> getDailyMsgCount(@Param("vo") QueryVo vo);

    public List<PrivateMsgDto> getPrivateMsgByUserIdAndMsgStatus(@Param("vo")PrivateMsgVo vo, @Param("id") long userId);

    public long getPrivateMsgCountByUserIdAndMsgStatus(@Param("vo")PrivateMsgVo vo, @Param("id") long userId);

    public List<BackendMsgDto> getPageMsgByCondition(@Param("vo") AllMsgVo vo);

    public long getPageMsgCountByCondition(@Param("vo") AllMsgVo vo);




/*************************************** page_like相关接口 ********************************************************/
}
