package com.fs.qw.service;

import com.fs.common.core.domain.R;
import com.fs.qw.domain.QwGroupChat;
import com.fs.qw.param.QwGroupChatParam;
import com.fs.qw.vo.QwGroupChatOptionsVO;
import com.fs.qw.vo.QwGroupChatVO;

import java.util.List;

/**
 * 客户群详情Service接口
 *
 * @author fs
 * @date 2024-06-20
 */
public interface IQwGroupChatService
{
    /**
     * 查询客户群详情
     *
     * @param chatId 客户群详情主键
     * @return 客户群详情
     */
    public QwGroupChat selectQwGroupChatByChatId(String chatId);

    /**
     * 查询客户群详情列表
     *
     * @param qwGroupChat 客户群详情
     * @return 客户群详情集合
     */
    public List<QwGroupChatVO> selectQwGroupChatList(QwGroupChatParam qwGroupChat);

    /**
     *  同步客户群列表
     */
    public R cogradientGroupChat(String corpId) throws Exception;
    /**
     * 新增客户群
     *
     * @param chatId 客户群详情主键[可以事件触发]
     * @return 结果
     */
    public R insertQwGroupChat(String chatId, String corpId);

    /**
     * 修改客户群
     *
     * @param qwGroupChat 客户群详情[可以事件触发]
     * @return 结果
     */
    public int updateQwGroupChat(QwGroupChat qwGroupChat,String corpId);


    /**
     * 删除客户群信息
     *
     * @param chatId 客户群详情主键[解散客户群]
     * @return 结果
     */
    public int deleteQwGroupChatByChatIdAndCompanyId(String chatId,String corpId);

    List<QwGroupChatOptionsVO> selectGroupChatOptionsVOList(String corpId);

    List<QwGroupChatOptionsVO> listAllByQwUserList(String qwUserIds);

    List<QwGroupChat> selectQwGroupChatByChatIds(String[] ids);
}
