package cn.com.ctop.common.module.service;

import cn.com.ctop.common.module.entity.CtopOauthToken;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.extension.service.IService;

import java.util.List;
import java.util.Map;

/**
 * @Description: oauth授权码
 * @Author: jeecg-boot
 * @Date: 2019-07-09
 * @Version: V1.0
 */
public interface ICtopOauthTokenService extends IService<CtopOauthToken> {

    CtopOauthToken getOauthTokenByAccountId(String accountId);

    CtopOauthToken getTokenByAccountId(Long accountId);

    Map<String, Object> getByteDanceAccessToken(CtopOauthToken token);

    void getKuaiShouRefreshToken(Long accountId, String token, String refreshToken, Long appId, String secret);

    List<CtopOauthToken> getTokenListByType(String platformTypeBytedance);

    List<CtopOauthToken> selectKuaiShouToken();

    List<CtopOauthToken> selectKuaiShouTokenBefore();

    List<CtopOauthToken> selectToutiaoToken();

    CtopOauthToken getAccessTokenByAccountIdAndMediaId(Integer mediaId, Long accountId);

    List<CtopOauthToken> getToutiaoTokenByCreateTime(String createTime);

    List<CtopOauthToken> getByProjectId(Long projectId);

    CtopOauthToken selectOneByMediaId(String platformTypeKuaishou);

    void getKuaiShouAgentRefreshToken(String id ,Long agentId, String accessToken, String refreshToken, Long appId, String secret);

    /**
     * 查询 快手 有效规则帐户token
     */
    List<CtopOauthToken> queryKsValidRuleAccountsToken();

    /**
     * 查询 头条 有效规则帐户token
     */
    List<CtopOauthToken> queryTtValidRuleAccountsToken();

    void getLiveKuaiShouAgentRefreshToken(String id, String accessToken, String refreshToken, Long appId, String secret);

    void refreshAgentBytedanceToken(JSONObject token);

    List<JSONObject> getAdqTokenList();

    void updateAdqToken(Long adminAdvertiserId, String updateAccessToken, String updateRefreshToken);
}
