package com.fs.live.service;


import com.fs.common.core.domain.R;
import com.fs.live.domain.LiveUserLotteryRecord;

import java.util.List;

/**
 * 直播用户中奖记录Service接口
 *
 * @author fs
 * @date 2025-07-17
 */
public interface ILiveUserLotteryRecordService {
    /**
     * 查询直播用户中奖记录
     *
     * @param id 直播用户中奖记录主键
     * @return 直播用户中奖记录
     */
    LiveUserLotteryRecord selectLiveUserLotteryRecordById(Long id);

    /**
     * 查询直播用户中奖记录列表
     *
     * @param liveUserLotteryRecord 直播用户中奖记录
     * @return 直播用户中奖记录集合
     */
    List<LiveUserLotteryRecord> selectLiveUserLotteryRecordList(LiveUserLotteryRecord liveUserLotteryRecord);

    /**
     * 新增直播用户中奖记录
     *
     * @param liveUserLotteryRecord 直播用户中奖记录
     * @return 结果
     */
    int insertLiveUserLotteryRecord(LiveUserLotteryRecord liveUserLotteryRecord);

    /**
     * 修改直播用户中奖记录
     *
     * @param liveUserLotteryRecord 直播用户中奖记录
     * @return 结果
     */
    int updateLiveUserLotteryRecord(LiveUserLotteryRecord liveUserLotteryRecord);

    /**
     * 批量删除直播用户中奖记录
     *
     * @param ids 需要删除的直播用户中奖记录主键集合
     * @return 结果
     */
    int deleteLiveUserLotteryRecordByIds(Long[] ids);

    /**
     * 删除直播用户中奖记录信息
     *
     * @param id 直播用户中奖记录主键
     * @return 结果
     */
    int deleteLiveUserLotteryRecordById(Long id);

    /**
     * 用户点击报名抽奖
     */
    String userLottery(Long liveId, Long lotteryId, String userId);

    boolean existsByUserIdAndRedId(Long lotteryId, String userId);

    R selectRecordByLiveIdAndLotteryId(LiveUserLotteryRecord liveUserLotteryRecord);
}
