package com.reyun.saas.mob.user.service;


import com.reyun.saas.common.restResult.RestResult;

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

public interface ChannelService {

    /**
     * 渠道列表
     * @param map 筛选条件
     * @param loginUserId 当前登录用户id
     * @return
     */
    public RestResult list(Map<String,Object> map,Long loginUserId);


    /**
     * bid的筛选条件下拉列表
     * 返回的结果为 " appname | bid " 的样式
     * @param loginUserId 当前登录用户id
     * @return
     */
    RestResult appAndBidScreeningList(Long loginUserId);


    /**
     * 其他筛选条件下拉列表
     * @param key 下拉列表类型
     * @param bid 应用包名
     * @param cid 渠道id
     * @param channelAlias  渠道别名
     * @param loginUserId 当前登录用户id
     * @return
     */
    public RestResult screeningList(String key,String bid,String cid,String channelAlias, Long loginUserId);


    /**
     * 修改渠道启用 / 禁用状态
     * @param channelId 渠道id
     * @param loginUserId 当前登录用户id
     * @param status 启用状态  启用: true   禁用false
     * @return
     */
    public RestResult updateActiveStatus(Long channelId,Long loginUserId,Boolean status);


    /**
     * 修改渠道别名  支持批量修改
     * 修改单个渠道  渠道id参数是size为1的集合
     * @param map 渠道的id (List<Long>)
     * @param loginUserId 当前登录用户id
     * @return
     */
    public RestResult updateChannelName(Map<String,Object> map, Long loginUserId);


    /**
     * 根据appkey查询渠道
     * 目前用于工单中心的创建工单条件的下拉列表
     * @param appkey appkey
     * @param loginUserId 当前登录用户id
     * @return
     */
    RestResult findChannel(String appkey, Long loginUserId);

    /**
     * 功能描述:根据appkey查询关联用户下正常状态的渠道
     */
    List<Map<String,Object>> findChannelsByAppkey(Long loginUserId, String appkey, String os);
}
