package com.fs.live.service;


import com.fs.live.domain.LiveUserFavorite;
import org.apache.ibatis.annotations.Delete;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;

import java.util.List;

/**
 * 用户直播收藏Service接口
 *
 * @author fs
 * @date 2025-07-11
 */
public interface ILiveUserFavoriteService {
    /**
     * 查询用户直播收藏
     *
     * @param favoriteId 用户直播收藏主键
     * @return 用户直播收藏
     */
    LiveUserFavorite selectLiveUserFavoriteByFavoriteId(Long favoriteId);

    /**
     * 查询用户直播收藏列表
     *
     * @param liveUserFavorite 用户直播收藏
     * @return 用户直播收藏集合
     */
    List<LiveUserFavorite> selectLiveUserFavoriteList(LiveUserFavorite liveUserFavorite);

    /**
     * 新增用户直播收藏
     *
     * @param liveUserFavorite 用户直播收藏
     * @return 结果
     */
    int insertLiveUserFavorite(LiveUserFavorite liveUserFavorite);

    /**
     * 修改用户直播收藏
     *
     * @param liveUserFavorite 用户直播收藏
     * @return 结果
     */
    int updateLiveUserFavorite(LiveUserFavorite liveUserFavorite);

    /**
     * 批量删除用户直播收藏
     *
     * @param favoriteIds 需要删除的用户直播收藏主键集合
     * @return 结果
     */
    int deleteLiveUserFavoriteByFavoriteIds(Long[] favoriteIds);

    LiveUserFavorite selectLiveUserFavoriteByLiveIdAndUserId(Long liveId, Long userId);

    void deleteLiveUserFavoriteByLiveIdAndUserId(Long liveId, Long userId);

    long count(@Param("userId") Long userId,@Param("storeId") Long storeId,@Param("productId") Long productId);

    void removeBy(@Param("userId") Long userId,@Param("storeId") Long storeId,@Param("productId") Long productId);
}
