package com.bocloud.ims.interfaces.resource;

import com.bocloud.common.model.BocloudResult;
import com.bocloud.common.model.Param;
import com.bocloud.ims.entity.resource.NetworkArea;

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

/**
 * @Date: Created in 2018/10/15
 * @Author: guopeng
 * @Description:
 */
public interface NetworkAreaService {

    /**
     * 查询网络区域列表
     *
     * @param page
     * @param rows
     * @param params
     * @param sorter
     * @param simple
     * @return
     */
    public BocloudResult list(int page, int rows, List<Param> params, Map<String, String> sorter, boolean simple);

    /**
     * 查看网络区域详情
     *
     * @param id
     * @return
     */
    public BocloudResult detail(Long id);

    /**
     * 创建网络区域
     *
     * @param networkArea
     * @return
     */
    public BocloudResult create(NetworkArea networkArea);

    /**
     * 更新网络区域
     *
     * @param networkArea
     * @return
     */
    public BocloudResult modify(NetworkArea networkArea);

    /**
     * 删除网络区域
     *
     * @param id
     * @return
     */
    public BocloudResult remove(Long id, Long userId);

    /**
     * 根据物理位置查询对应网络区域
     *
     * @param dcId
     * @return
     */
    public BocloudResult listByDc(Long dcId);

    /**
     * 查询未绑定云平台的网络区域
     *
     * @param dcId
     * @return
     */
    public BocloudResult listUnbindNetworkArea(Long dcId);

    /**
     * 绑定集群
     *
     * @param defClusterId
     * @param NetworkAreaId
     * @param clusterIds
     * @param userId
     * @return
     */
    public BocloudResult bind(Long defClusterId, Long NetworkAreaId, List<Long> clusterIds, Long userId);

}
