package cn.com.ctop.kuaishou.modules.batch.service;

import cn.com.ctop.kuaishou.modules.batch.entity.KuaishouPopulation;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.extension.service.IService;

import java.io.File;

/**
 * 人群包列表
 *
 * @author jeecg-boot
 * @version V1.0
 * @date 2020-05-06
 */
public interface IKuaishouPopulationService extends IService<KuaishouPopulation> {
    /**
     * 获取人群包接口
     *
     * @param accountId
     * @param populationId 人群包ID
     * @param accessToken  token
     * @param accountId    广告主ID
     * @return
     */
    boolean deletePopulation(Long accountId, String populationId, String accessToken);

    /**
     * 获取人群包接口
     *
     * @param accountId
     * @param populationName 人群包名称
     * @param type           1：IMEI 2：IDFA 3：IMEI_MD5 4：IDFA_MD5 5：手机号-MD5 7：OAID
     * @param accountId      广告主ID
     * @param file           请求的页码
     * @param accessToken    token
     * @return
     */
    JSONObject updatePopulation(Long accountId, int type, String populationName, File file, String accessToken);

    /**
     * 推送人群包接口（单日最多可调用50次推送接口）
     *
     * @param accountId
     * @param populationId 人群包ID （只有status为1或6的人群包可推送，最多支持4个人群包状态同时为“推送中”）
     * @param accessToken  token
     * @param accountId    广告主ID
     * @return
     */
    boolean pushPopulation(Long accountId, String populationId, String accessToken);

    /**
     * 跨账户人群包推送接口
     *
     * @param populationId 人群包ID
     * @param accessToken  token
     * @param accountId    广告主ID
     * @param ids          要推送的账户ids
     * @return
     */
    boolean pushAccountsPopulation(Long accountId, String populationId, Long[] ids, String accessToken);

    /**
     * 游戏精选标签人群包
     * 获取游戏精选标签所有接口类型
     *
     * @param accessToken token
     * @return
     */
    JSONObject selectGameTags(String accessToken);

    /**
     * 游戏精选标签人群包
     * 游戏精选标签创建
     *
     * @param accessToken token
     * @param accountId   广告主ID
     * @return
     */
    Long createGameTags(Long accountId, JSONObject obj, String accessToken);

    /**
     * DMP更新人群包接口
     *
     * @param populationId   人群包ID
     * @param populationType 1：APPEND（增量更新）
     * @param type           人群数据类型 1：IMEI 2：IDFA 3：IMEI_MD5 4：IDFA_MD5 7：OAID 8：OAID_MD5
     * @param accessToken    token
     * @param accountId      广告主ID
     * @param file           请求的文件，最大支持500MB
     * @return
     */
    JSONObject updatePopulation(Long accountId, Integer type, Long populationId, Integer populationType, File file, String accessToken);

    /**
     * 获取人群预估数量
     *
     * @param accessToken token
     * @param accountId   广告主ID
     * @return
     */
    Long predictionPopulation(Long accountId, JSONObject obj, String accessToken);

}
