package com.fs.live.mapper;


import com.fs.live.domain.LiveLotteryProductConf;
import com.fs.live.param.LiveLotteryProduct;
import com.fs.live.param.LiveLotteryProductSaveParam;
import com.fs.live.vo.LiveLotteryProductListVo;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 直播抽奖记录Mapper接口
 *
 * @author fs
 * @date 2025-07-21
 */
public interface LiveLotteryProductConfMapper {
    /**
     * 查询直播抽奖记录
     *
     * @param id 直播抽奖记录主键
     * @return 直播抽奖记录
     */
    LiveLotteryProductConf selectLiveLotteryProductConfById(Long id);

    /**
     * 查询直播抽奖记录列表
     *
     * @param
     * @return 直播抽奖记录集合
     */
    List<LiveLotteryProduct> selectLiveLotteryProductConfByLotteryId(Long lotteryId);

    /**
     * 查询直播抽奖记录列表
     *
     * @param liveLotteryProductConf 直播抽奖记录
     * @return 直播抽奖记录集合
     */
    List<LiveLotteryProductConf> selectLiveLotteryProductConfList(LiveLotteryProductConf liveLotteryProductConf);

    /**
     * 新增直播抽奖记录
     *
     * @param liveLotteryProductConf 直播抽奖记录
     * @return 结果
     */
    int insertLiveLotteryProductConf(LiveLotteryProductConf liveLotteryProductConf);

    /**
     * 修改直播抽奖记录
     *
     * @param liveLotteryProductConf 直播抽奖记录
     * @return 结果
     */
    int updateLiveLotteryProductConf(LiveLotteryProductConf liveLotteryProductConf);

    /**
     * 删除直播抽奖记录
     *
     * @param id 直播抽奖记录主键
     * @return 结果
     */
    int deleteLiveLotteryProductConfById(Long id);

    /**
     * 批量删除直播抽奖记录
     *
     * @param ids 需要删除的数据主键集合
     * @return 结果
     */
    int deleteLiveLotteryProductConfByIds(Long[] ids);

    void saveProducts(LiveLotteryProductSaveParam saveParam);

    void deleteLiveLotteryProductConfByLotteryId(Long lotteryId);

    List<LiveLotteryProductListVo> selectLiveLotteryProductConfByLotteryIds(@Param("lotteryIds") List<Long> lotteryIds);

    List<LiveLotteryProductConf> selectEntityByIds(@Param("lotteryIds") List<Long> lotteryIds);
}
