package com.bocloud.ims.interfaces.resource;

import com.bocloud.common.model.BocloudResult;
import com.bocloud.common.model.GridBean;
import com.bocloud.common.model.Pager;
import com.bocloud.common.model.RequestContext;
import com.bocloud.ims.entity.resource.ResourceGroup;

import java.util.List;

/**
 * @Company: 博云 www.bocloud.com
 * @ClassName: AzureResourceGroupsService
 * @Description:
 * @author: zhenpingLi/李振平
 * @date: 2019/8/8 13:43
 */
public interface ResourceGroupService {

	/**
	 * 列表展示
	 *
	 * @param page
	 * @param rows
	 * @param params
	 * @param sorter
	 * @param simple
	 * @return
	 */
	BocloudResult<GridBean<ResourceGroup>> list(Pager pager);

	/**
	 * 创建
	 *
	 * @param params
	 * @param context
	 * @return
	 */
	BocloudResult<String> create(ResourceGroup resourceGroup, RequestContext context);

	/**
	 * 删除
	 *
	 * @param id
	 * @return
	 */
	BocloudResult<String> remove(Long id, RequestContext context);

	/**
	 * 详情
	 *
	 * @param id
	 * @return
	 */
	BocloudResult<ResourceGroup> detail(Long id);

	/**
	 * 编辑
	 *
	 * @return
	 */
	default BocloudResult<String> modify(Long id, String params, RequestContext context) {
		return null;
	}

	/**
	 * 关联资源
	 *
	 * @return
	 */
	default BocloudResult relateDevices(Long id, String params, RequestContext context) {
		return null;
	}

	/**
	 * 移除资源
	 *
	 * @return
	 */
	default BocloudResult removeDevices(Long id, String params, RequestContext context) {
		return null;
	}

	/**
	 * 获取不在此资产组内的资产
	 *
	 * @param id 资产组id
	 * @return
	 */
	default BocloudResult getOtherResource(Long id, String resourceIp) {
		return null;
	}
}
