package com.ruoyi.busi.mapper;

import java.util.List;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.busi.domain.BusiNotice;
import com.ruoyi.busi.query.AppNoticeQuery;
import com.ruoyi.busi.query.BusiNoticeQuery;
import com.ruoyi.busi.vo.BusiNoticeVo;
import com.ruoyi.busi.vo.SubscribeDataObj;
import org.apache.ibatis.annotations.Param;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Mapper;

/**
 * 通告Mapper接口
 *
 * @author 朱春云
 * @date 2025-03-17
 */
@Mapper
public interface BusiNoticeMapper extends BaseMapper<BusiNotice> {
    IPage<BusiNoticeVo> queryListPage(@Param("entity") BusiNoticeQuery query, Page<BusiNotice> page);

    /**
     * 查询博主报名的通告
     *
     * @param userId 博主user表id
     * @return java.util.List<com.ruoyi.busi.vo.BusiNoticeVo>
     * @author PQZ
     * @date 11:04 2025/3/22
     **/
    IPage<BusiNoticeVo> queryListByUserId(@Param("userId") Long userId,Page<BusiNotice> page);

    /**
     * 小程序端查询通告列表
     * @author vinjor-M
     * @date 15:41 2025/3/25
     * @param query TODO
 * @param page
     * @return com.baomidou.mybatisplus.core.metadata.IPage<com.ruoyi.busi.domain.BusiNotice>
    **/
    IPage<BusiNoticeVo> queryAppListPage(@Param("entity") AppNoticeQuery query, Page<BusiNotice> page);
    /**
     * 小程序端查询浏览通告列表
     * @author zcy
     * @date 15:39 2025/3/29
     * @param query 查询条件
     * @return com.ruoyi.common.core.domain.AjaxResult
     **/
    IPage<BusiNoticeVo> appFootprintList(@Param("entity") AppNoticeQuery query, Page<BusiNotice> page);

    /**
     * 小程序端查询订阅通告列表
     * @author zcy
     * @date 15:39 2025/3/29
     * @param subscribeDataObj 查询条件
     * @return com.ruoyi.common.core.domain.AjaxResult
     **/
    IPage<BusiNoticeVo> subscribeList(@Param("entity") SubscribeDataObj subscribeDataObj, Page<BusiNotice> page);

    /**
     * 小程序端查询关注通告列表
     * @author zcy
     * @date 15:39 2025/3/29
     * @param query 查询条件
     * @return com.ruoyi.common.core.domain.AjaxResult
     **/
    IPage<BusiNoticeVo> loveList(@Param("entity") AppNoticeQuery query, Page<BusiNotice> page);
    /**
     * 小程序端我的通告列表
     * @author zcy
     * @date 15:39 2025/3/29
     * @param query 查询条件
     * @return com.ruoyi.common.core.domain.AjaxResult
     **/
    IPage<BusiNoticeVo> myNoticeList(@Param("entity") AppNoticeQuery query, Page<BusiNotice> page);

    /**
     * 小程序端通告主的通告列表
     * @author zcy
     * @date 15:39 2025/3/29
     * @param query 查询条件
     * @return com.ruoyi.common.core.domain.AjaxResult
     **/
    IPage<BusiNoticeVo> myPublishNoticeList(@Param("entity") AppNoticeQuery query, Page<BusiNotice> page);




    /**
     * 小程序端查询通告详细信息
     * @author 朱春云
     * @date 15:39 2025/3/29
     * @param noticeId 通告id
     * @return com.ruoyi.common.core.domain.AjaxResult
     **/
    BusiNoticeVo selectByIdVo(@Param("noticeId") String noticeId);
}
