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

import com.tzld.piaoquan.api.model.param.wecom.thirdpart.*;
import com.tzld.piaoquan.api.model.po.wecom.thirdpart.ThirdPartWeComStaffConfig;
import com.tzld.piaoquan.api.model.vo.IdNameVO;
import com.tzld.piaoquan.api.model.vo.contentplatform.AccountQrCodeVO;
import com.tzld.piaoquan.api.model.vo.wecom.thirdpart.CheckPushAccountExistVO;
import com.tzld.piaoquan.api.model.vo.wecom.thirdpart.ThirdPartyAccountConfigVO;
import com.tzld.piaoquan.api.model.vo.wecom.thirdpart.ThirdPartyAccountVO;
import com.tzld.piaoquan.growth.common.utils.page.Page;

import java.util.List;

public interface WeComThirdPartyAccountService {

    AccountQrCodeVO getQrCode(Long id);

    Integer checkLogin(String uuid);

    void setCheckCode(CheckCodeRequest param);

    Page<ThirdPartyAccountVO> list(ThirdPartyAccountListParam param);

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

    ThirdPartyAccountConfigVO getAccountConfig(ThirdPartyConfigGetParam param);

    CheckPushAccountExistVO checkPushAccountExist(ThirdPartyAccountConfigParam param);

    void saveAccountConfig(ThirdPartyAccountConfigParam param);

    void logout(ThirdPartyAccountLogOutParam param);

    List<ThirdPartWeComStaffConfig> getStaffConfigListByStaffIds(List<Long> staffIdList);

    void initAccountConfig();
}
