package com.starry.admin.modules.custom.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.starry.admin.modules.custom.entity.PlayCustomFollowInfoEntity;
import com.starry.admin.modules.weichat.entity.PlayClerkFollowQueryVo;
import com.starry.admin.modules.weichat.entity.PlayClerkFollowReturnVo;

/**
 * 顾客关注陪聊信息Service接口
 *
 * @author admin
 * @since 2024-04-30
 */
public interface IPlayCustomFollowInfoService extends IService<PlayCustomFollowInfoEntity> {
    /**
     * 查询顾客关注陪聊信息
     *
     * @param id
     *            顾客关注陪聊信息主键
     * @return 顾客关注陪聊信息
     */
    PlayCustomFollowInfoEntity selectPlayCustomFollowInfoById(String id);

    /**
     * 修改关注状态
     *
     * @param customUserId
     *            顾客ID
     * @param clerkUserId
     *            陪聊ID
     * @return 关注状态[0:未关注,1:已关注]
     */
    String queryFollowState(String customUserId, String clerkUserId);

    /**
     * 修改关注状态
     *
     * @param customUserId
     *            顾客ID
     * @param clerkUserId
     *            陪聊ID
     * @param followState
     *            关注状态[0:未关注,1:已关注]
     */
    void updateFollowState(String customUserId, String clerkUserId, String followState);

    /**
     * 分页查询陪聊关注状态
     *
     * @param vo
     *            店员关注状态 查询对象
     * @return 顾客关注陪聊信息集合
     * @author admin
     * @since 2024/5/10 10:28
     **/
    IPage<PlayClerkFollowReturnVo> selectByPage(PlayClerkFollowQueryVo vo);

    /**
     * 查询顾客关注陪聊信息列表
     *
     * @param playCustomFollowInfo
     *            顾客关注陪聊信息
     * @return 顾客关注陪聊信息集合
     */
    IPage<PlayCustomFollowInfoEntity> selectPlayCustomFollowInfoByPage(PlayCustomFollowInfoEntity playCustomFollowInfo);

    /**
     * 新增顾客关注陪聊信息
     *
     * @param playCustomFollowInfo
     *            顾客关注陪聊信息
     * @return 结果
     */
    boolean create(PlayCustomFollowInfoEntity playCustomFollowInfo);

    /**
     * 修改顾客关注陪聊信息
     *
     * @param playCustomFollowInfo
     *            顾客关注陪聊信息
     * @return 结果
     */
    boolean update(PlayCustomFollowInfoEntity playCustomFollowInfo);

    /**
     * 批量删除顾客关注陪聊信息
     *
     * @param ids
     *            需要删除的顾客关注陪聊信息主键集合
     * @return 结果
     */
    int deletePlayCustomFollowInfoByIds(String[] ids);

    /**
     * 删除顾客关注陪聊信息信息
     *
     * @param id
     *            顾客关注陪聊信息主键
     * @return 结果
     */
    int deletePlayCustomFollowInfoById(String id);
}
