package com.tzld.piaoquan.api.service.wecom.thirdparty;

import com.tzld.piaoquan.api.model.param.wecom.thirdpart.ThirdPartyAccountConfigParam;
import com.tzld.piaoquan.api.model.param.wecom.thirdpart.ThirdPartyConfigGetParam;
import com.tzld.piaoquan.api.model.param.wecom.thirdpart.ThirdPartyRoomConfigParam;
import com.tzld.piaoquan.api.model.param.wecom.thirdpart.ThirdPartyRoomListParam;
import com.tzld.piaoquan.api.model.po.wecom.thirdpart.*;
import com.tzld.piaoquan.api.model.vo.IdNameVO;
import com.tzld.piaoquan.api.model.vo.wecom.thirdpart.ThirdPartyAccountConfigVO;
import com.tzld.piaoquan.api.model.vo.wecom.thirdpart.ThirdPartyRoomConfigVO;
import com.tzld.piaoquan.api.model.vo.wecom.thirdpart.ThirdPartyRoomVO;
import com.tzld.piaoquan.growth.common.utils.page.Page;

import java.util.List;

public interface WeComThirdPartyRoomService {

    Page<ThirdPartyRoomVO> list(ThirdPartyRoomListParam param);

    List<IdNameVO<Long>> getPushAccountList(Long roomId, String name);

    ThirdPartyRoomConfigVO getRoomConfig(ThirdPartyConfigGetParam param);

    List<ThirdPartWeComStaff> getRoomConfigPushList(List<ThirdPartWeComRoomConfig> configList);

    List<ThirdPartWeComRoomConfigTask> getRoomConfigTasks(List<String> configIds);

    List<ThirdPartWeComRoomConfigTaskContent> getRoomConfigTaskContents(List<String> taskIds);

    void saveRoomConfig(ThirdPartyRoomConfigParam param, String accountConfigId);

    List<ThirdPartWeComRoomUser> getRoomUserListByRoomId(String thirdRoomId);

    List<ThirdPartWeComRoomUser> getRoomUserListByRoomIds(List<String> thirdRoomIds);

    void saveRoomConfig(ThirdPartWeComRoom room, String accountConfigId, ThirdPartyAccountConfigParam param);

    void saveRoomConfig(ThirdPartWeComRoom room, String accountConfigId, ThirdPartyAccountConfigVO configVO);

    List<ThirdPartWeComRoomConfig> getRoomConfigListByRoomIds(List<Long> roomIds);

    List<ThirdPartWeComRoom> getRoomListByRoomIds(List<Long> roomIds);

    List<ThirdPartWeComRoomConfig> getAccountConfigRoomConfigList(String accountConfigId);
}
