package com.younike.system.service;

import java.util.List;

import com.younike.common.core.domain.AjaxResult;
import com.younike.system.domain.ServerUserFollow;
import com.younike.system.param.ServerUserFollowParam;

/**
 * 服务人员关注发布类型关联Service接口
 *
 * @author elev
 * @date 2022-01-20
 */
public interface IServerUserFollowService {
    /**
     * 查询服务人员关注发布类型关联
     *
     * @param serverUserId 服务人员关注发布类型关联主键
     * @return 服务人员关注发布类型关联
     */
    ServerUserFollow selectServerUserFollowByServerUserId(Long serverUserId);

    /**
     * 查询服务人员关注发布类型关联列表
     *
     * @param serverUserFollow 服务人员关注发布类型关联
     * @return 服务人员关注发布类型关联集合
     */
    List<ServerUserFollow> selectServerUserFollowList(ServerUserFollow serverUserFollow);

    /**
     * 新增服务人员关注发布类型关联
     *
     * @param serverUserFollow 服务人员关注发布类型关联
     * @return 结果
     */
    int insertServerUserFollow(ServerUserFollow serverUserFollow);

    /**
     * 修改服务人员关注发布类型关联
     *
     * @param serverUserFollow 服务人员关注发布类型关联
     * @return 结果
     */
    int updateServerUserFollow(ServerUserFollow serverUserFollow);

    /**
     * 批量删除服务人员关注发布类型关联
     *
     * @param serverUserIds 需要删除的服务人员关注发布类型关联主键集合
     * @return 结果
     */
    int deleteServerUserFollowByServerUserIds(Long[] serverUserIds);

    /**
     * 删除服务人员关注发布类型关联信息
     *
     * @param serverUserId 服务人员关注发布类型关联主键
     * @return 结果
     */
    int deleteServerUserFollowByServerUserId(Long serverUserId);


    /**
     * 取消关注服务类型
     * @param follow
     * @return
     */
    AjaxResult cancelAttention(ServerUserFollow follow);

    /**
     * 提交关注服务类型
     * @param follow
     * @return
     */
    AjaxResult attention(ServerUserFollowParam follow);
}
