package com.gic.haoban.manage.api.service.chat;

import java.util.List;

import com.gic.api.base.commons.BasePageInfo;
import com.gic.api.base.commons.Page;
import com.gic.api.base.commons.ServiceResponse;
import com.gic.haoban.manage.api.dto.chat.GroupChatHmDTO;
import com.gic.haoban.manage.api.dto.chat.GroupChatHmMemberRelationDTO;
import com.gic.haoban.manage.api.dto.hm.HmLinkChatDTO;
import com.gic.haoban.manage.api.dto.qdto.chat.ChatHmSearchQDTO;
import com.gic.haoban.manage.api.dto.qdto.hm.HmLinkChatQDTO;

/**
 * 
* @ClassName: GroupChatHmApiService
* @Description: 群活码
* @author xugh
* @date 2022年12月1日 下午7:44:51
*
 */
public interface GroupChatHmApiService {

    // 活码列表
    public ServiceResponse<Page<GroupChatHmDTO>> listPage(ChatHmSearchQDTO qdto, BasePageInfo basePageInfo);

    // 活码详情
    public ServiceResponse<GroupChatHmDTO> detail(Long chatHmId);

    // 保存/更新
    public ServiceResponse<GroupChatHmDTO> save(GroupChatHmDTO dto);

    /**
     * 
    * @Title: discard
    * @Description: 废弃
    * @author xugh
    * @param chatHmId
    * @param wxEnterpriseId
    * @return
    * @throws
     */
    public ServiceResponse<Void> discard(Long chatHmId, String wxEnterpriseId , String clerkId, String clerkName);

    /**
     * 
    * @Title: listChatLink
    * @Description: 查询活码关联的链接
    * @author xugh
    * @param wxEnterpriseId
    * @param chatHmId
    * @return
    * @throws
     */
    public ServiceResponse<Page<HmLinkChatDTO>> listPageChatLink(HmLinkChatQDTO qdto, BasePageInfo basePageInfo);
    
    public ServiceResponse<List<Long>> listHmGroupChatId(String wxEnterpriseId, Long chatHmId) ;

    /**
     * 社群列表(会员当前企业所在的社群列表)
     * @param memberId
     * @param enterpriseId
     * @param basePageInfo
     * @return
     */
    ServiceResponse<Page<GroupChatHmMemberRelationDTO>> memberGroupChatHmPage(String memberId, String enterpriseId, BasePageInfo basePageInfo);

    /**
     * 会员加入社群的数量
     * @param memberId
     * @param enterpriseId
     * @return
     */
    ServiceResponse<Integer> memberJoinGroupChatHmCount(String memberId, String enterpriseId);
}
