package org.xyzh.workcase.mapper;

import java.util.List;

import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.xyzh.api.workcase.dto.TbMeetingParticipantDTO;
import org.xyzh.api.workcase.vo.MeetingParticipantVO;
import org.xyzh.common.core.page.PageParam;

/**
 * @description    会议参与记录数据访问层
 * @filename    TbMeetingParticipantMapper.java
 * @author    cascade
 * @copyright xyzh
 * @since 2025-12-22
 */
@Mapper
public interface TbMeetingParticipantMapper {

    /**
     * 插入会议参与记录
     */
    int insertMeetingParticipant(TbMeetingParticipantDTO participant);

    /**
     * 更新会议参与记录（只更新非null字段）
     */
    int updateMeetingParticipant(TbMeetingParticipantDTO participant);

    /**
     * 删除会议参与记录
     */
    int deleteMeetingParticipant(TbMeetingParticipantDTO participant);

    /**
     * 根据ID查询会议参与记录
     */
    TbMeetingParticipantDTO selectMeetingParticipantById(@Param("participantId") String participantId);

    /**
     * 查询会议参与记录列表
     */
    List<MeetingParticipantVO> selectMeetingParticipantList(@Param("filter") TbMeetingParticipantDTO filter);

    /**
     * 分页查询会议参与记录
     */
    List<MeetingParticipantVO> selectMeetingParticipantPage(@Param("filter") TbMeetingParticipantDTO filter, @Param("pageParam") PageParam pageParam);

    /**
     * 统计会议参与记录数量
     */
    long countMeetingParticipants(@Param("filter") TbMeetingParticipantDTO filter);

}
