package com.xingxi.business.UserFollow.service;

import com.xingxi.business.UserFollow.domain.UserFollow;

import java.util.List;

/**
 * 用户收藏Service接口
 *
 * @author xingxi
 * @date 2025-03-06
 */
public interface IUserFollowService {
    /**
     * 查询用户收藏
     *
     * @param userFollowId 用户收藏主键
     * @return 用户收藏
     */
    UserFollow selectUserFollowByUserFollowId(Long userFollowId);

    /**
     * 查询用户收藏列表
     *
     * @param userFollow 用户收藏
     * @return 用户收藏集合
     */
    List<UserFollow> selectUserFollowList(UserFollow userFollow);

    /**
     * 新增用户收藏
     *
     * @param userFollow 用户收藏
     * @return 结果
     */
    int insertUserFollow(UserFollow userFollow);

    /**
     * 新增用户收藏
     *
     * @param userFollowList 用户收藏
     * @return 结果
     */
    int batchInsertUserFollow(List<UserFollow> userFollowList);

    /**
     * 修改用户收藏
     *
     * @param userFollow 用户收藏
     * @return 结果
     */
    int updateUserFollow(UserFollow userFollow);

    /**
     * 批量删除用户收藏
     *
     * @param userFollowIds 需要删除的用户收藏主键集合
     * @return 结果
     */
    int deleteUserFollowByUserFollowIds(String userFollowIds);

    /**
     * 删除用户收藏信息
     *
     * @param userFollowId 用户收藏主键
     * @return 结果
     */
    int deleteUserFollowByUserFollowId(Long userFollowId);

    /**
     * 逻辑删除用户收藏
     *
     * @param userFollowId 用户收藏主键
     * @return 结果
     */
    int logicDeleteUserFollowByUserFollowId(Long userFollowId);

    /**
     * 逻辑批量删除用户收藏
     *
     * @param userFollowIds 需要删除的数据主键集合
     * @return 结果
     */
    int logicDeleteUserFollowByUserFollowIds(String[] userFollowIds);

    /**
     * 逻辑批量删除用户收藏
     *
     * @param userFollow 用户收藏
     * @return 结果
     */
    int logicDeleteUserFollowByCondition(UserFollow userFollow);
}
