package com.bocloud.ims.interfaces.resource;

import com.alibaba.fastjson.JSONObject;
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.NameRule;

import java.util.List;

/**
 * 命名规则service实现
 *
 * @author wangyu
 * @version 3.0.0-SNAPSHOT
 * @since 2018/7/2
 */
public interface NameRuleService {

	/**
	 * 查询命名规则列表
	 *
	 * @param page
	 * @param rows
	 * @param params
	 * @param sorter
	 * @param simple
	 * @param user
	 * @return
	 */
	BocloudResult<GridBean<NameRule>> list(Pager pager, RequestContext context);

	/**
	 * 查看命名规则详情
	 *
	 * @param id
	 * @return
	 */
	BocloudResult<NameRule> detail(Long id);

	/**
	 * 创建命名规则
	 *
	 * @param nameRule
	 * @param user
	 * @return
	 */
	BocloudResult<NameRule> create(NameRule nameRule, RequestContext context);

	/**
	 * 更新命名规则
	 *
	 * @param nameRule
	 * @param user
	 * @return
	 */
	BocloudResult modify(NameRule nameRule, RequestContext context);

	/**
	 * 删除命名规则
	 *
	 * @param id
	 * @return
	 */
	BocloudResult remove(Long id);

	/**
	 * 生成命名
	 *
	 * @param id
	 * @param object
	 * @return
	 */
	BocloudResult<String> generate(Long id, JSONObject object);

}
