package com.ytpm.service;

import com.ytpm.advertise.param.RelativeChannelParam;
import com.ytpm.agent.model.YtPlatformUserApp;
import com.ytpm.agent.param.AppListParam;
import com.ytpm.agent.param.AppParam;
import com.ytpm.agent.view.AgentAppView;
import com.ytpm.agent.view.AgentEnableAppView;
import com.ytpm.general.Result;
import com.ytpm.general.ResultTable;
import org.apache.ibatis.annotations.Param;

import java.util.List;

public interface AgentAppService {
    /**
     * 查询渠道启用的应用列表
     */
    ResultTable<AgentEnableAppView> getEnabledList(String userId);

    /**
     * 查询应用列表
     */
    ResultTable<AgentAppView> searchAppList(AppListParam appListParam);

    List<AgentAppView> searchAppIdList(AppListParam appListParam);

    /**
     * 保存应用
     */
    Result<?> saveApp(AppParam param, String userId);

    /**
     * 删除应用
     */
    Result<?> delApp(String appId, String userId);

    /**
     * 应用关联广告平台 & 广告平台应用
     */
    Result<?> relativeChannel(RelativeChannelParam param);

    /**
     * 获取指定平台下的一级分类
     */
    Result<?> getPrimaryCategories(String platform);

    /**
     * 获取指定平台下的一级分类下的二级分类
     */
    Result<?> getSecondaryCategories(String platform,String primaryCategory);
    /**
     * 查询加盟商上架应用列表
     */
    ResultTable<YtPlatformUserApp> getIssuedAppList(String userId);

    /**
     * 查询代理商子包ID
     */
    List<String> getApkIdList(String userId);

    YtPlatformUserApp selectByPrimaryKey(@Param("appId") String appId);
}
