package com.fs.qw.service;

import com.fs.common.core.domain.R;
import com.fs.qw.domain.QwGroupChatUser;
import com.fs.qw.param.QwGroupChatUserDataType;
import com.fs.qw.vo.QwGroupChatUserVO;
import com.fs.sop.domain.SopUserLogsInfo;

import java.util.List;

/**
 * 客户群成员列Service接口
 *
 * @author fs
 * @date 2024-06-20
 */
public interface IQwGroupChatUserService
{
    /**
     * 查询客户群成员列
     *
     * @param id 客户群成员列主键
     * @return 客户群成员列
     */
    public QwGroupChatUser selectQwGroupChatUserById(Long id);
    /**
     * 查询客户群成员列列表
     *
     * @param qwGroupChatUser 客户群成员列
     * @return 客户群成员列集合
     */
    public List<QwGroupChatUserVO> selectQwGroupChatUserList(QwGroupChatUser qwGroupChatUser);

    /** 获取日星月的入群退群统计 */
    public R getDataWeekMonthCount(QwGroupChatUserDataType qwGroupChatUserDataType);
    public R cogradientGroupChatUser(String corpId,String chatId);

    /** 成员退群 */
    public int upDateDelGroupChatUser(QwGroupChatUser qwGroupChatUser);

    /** 成员入群 */
    public int insertQwGroupChatUser(QwGroupChatUser qwGroupChatUser);

    /** 群员退群再入群 */
    public int groupChatUserJoinAgain(QwGroupChatUser qwGroupChatUser);

    /** 根据成员id和公司corpId等查询群成员信息 */

    public QwGroupChatUser selectQwGroupChatUserByExternalUserId(QwGroupChatUser qwGroupChatUser);

    List<QwGroupChatUser> selectQwGroupChatUserByChatIds(String[] array);
    List<QwGroupChatUser> selectUserIsChat(String externalUserId);

    List<QwGroupChatUser> selectByChatId(SopUserLogsInfo sopUserLogsInfo);

    List<String> selectChatNameByUserId(String userId);
}
