package org.jeecg.modules.bytedance.advertise.dockapi;

import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import org.jeecg.common.api.vo.Result;
import org.jeecg.modules.bytedance.advertise.entity.AiBytedanceAdvertiserStrategy;
import org.jeecg.modules.bytedance.advertise.vo.AdConvertQueryVo;
import org.jeecg.modules.bytedance.advertise.vo.ByteDanceSearchVo;
import org.jeecg.modules.bytedance.advertise.vo.PlanSearchVo;
import org.jeecg.modules.bytedance.common.entity.CtopOauthToken;

import java.math.BigDecimal;
import java.util.List;
import java.util.Map;

public interface MarketingService {
    Result getBudget(CtopOauthToken token, List<Long> advertiser_ids);

    Result updateBudget(CtopOauthToken token, String budgetMode, BigDecimal budget);

    Result selectCustomAudience(CtopOauthToken token);

    Result getCreativeRejectReason(CtopOauthToken token, String creativeIds);

    Result getMaterialRead(CtopOauthToken token, String[] creativeIds);

    Result updateCreativeStatus(CtopOauthToken token, String[] creativeIds, String optStatus);

    Result createCampaign(CtopOauthToken token, JSONObject params);

    JSONObject videoCoverSuggest(CtopOauthToken token, JSONObject params);

    Result createAdvertiserPlan(CtopOauthToken token, JSONObject params, AiBytedanceAdvertiserStrategy strategy);

    JSONObject creativeCreate(CtopOauthToken token, Long adId, JSONObject params);

    Result creativeRead(CtopOauthToken token, String advertiserId, String adId);

    Result getAdvertiserCreativeByPageNumber(CtopOauthToken token, Integer pageNumber, List<ByteDanceSearchVo> byteDanceSearchVoList);

    Result getRejectReason(CtopOauthToken token, String advertiserId, List<String> adIds);

    Result updatePlanBid(CtopOauthToken token, String advertiserId, List<Map<String, Object>> listMap);

    Result updatePlanBudget(CtopOauthToken token, String advertiserId, List<Map<String, Object>> listMap);

    Result updPlanStatus(CtopOauthToken token, List<Long> adIds, String optStatus);

    Result getPlanList(CtopOauthToken token, PlanSearchVo planSearchVo, Integer pageNo, Integer pageSize);

    Result updateCampaignStatus(CtopOauthToken token, List<String> campaignIds, String optStatus);

    Result getCampaignGroupList(CtopOauthToken token, String accountId, JSONArray ids, int page, int pageSize);

    Result updateCampaign(CtopOauthToken token, String campaignId, String modifyTime, String campaignName, String budgetMode, String budget);

    Result updateAdvertiserPlan(CtopOauthToken token, String planId, String modifyTime, AiBytedanceAdvertiserStrategy strategy);

    Result creativeUpdate(CtopOauthToken token, String adId, String modifyTime, JSONObject data);

    Result getToolIndustryList(CtopOauthToken token, String type);

    Result getToolConvertQuery(CtopOauthToken token, AdConvertQueryVo convertQueryVo);

    Result readToolConvertInfo(CtopOauthToken token, String accountId,String convertId);

    JSONObject imageUpload(CtopOauthToken token, String imageUrl);

    JSONObject getSuggestImageId(CtopOauthToken token, String vid);

    Result getActionText(CtopOauthToken token, String landing_type,String advanced_creative_type);

    Result getAudiencePackage(CtopOauthToken token,String landingType,String deliveryRange);

    Result getAudiencePackageRead(CtopOauthToken token,String accountId,List<Integer> ids);

    Result createAudiencePackage(CtopOauthToken token);

    Result getSite(CtopOauthToken token);


    Result getCreativeComponent(CtopOauthToken token);

}
