package com.crunii.micro.service.sysmgr.service;

import com.crunii.micro.common.dto.PageReq;
import com.crunii.micro.common.dto.PageRsp;
import com.crunii.micro.domain.entity.main.TsmUrl;
import com.crunii.micro.domain.entity.main.TsmUrlGroup;
import com.crunii.micro.service.sysmgr.dto.sysmgr.*;

import java.util.List;

/**
 * @author 田平 create 2019年5月29日下午2:30:32
 */
public interface UrlService {

	/**
	 * 通过url组id获取url
	 * @param groupId 组id
	 * @return 该组下url
	 */
	List<TsmUrl> getUrlsOfGroup(int groupId);

	/**
	 * 分页获取url参数
	 * @param req 请求参数
	 * @return url
	 */
	PageRsp<TsmUrl> pageUrl(PageReq<UrlReq> req);

	/**
	 * 创建url参数
	 * @param urlC 新增url参数
	 */
	void createUrl(UrlC urlC);

	/**
	 * 更新url
	 * @param urlU 更新url参数
	 */
	void updateUrl(UrlU urlU);

	/**
	 * 分页获取url组
	 * @param req 分页参数
	 * @return url组
	 */
	PageRsp<TsmUrlGroup> pageUrlGroup(PageReq<UrlGroupReq> req);

	/**
	 * 创建url组
	 * @param urlGroupC url组创建参数
	 */
	void createUrlGroup(UrlGroupC urlGroupC);

	/**
	 * 更新url组
	 * @param urlGroupU 更新组参数
	 */
	void updateUrlGroup(UrlGroupU urlGroupU);

	/**
	 * Url组关联Url
	 * @param rela 1组n个url
	 */
	void doUrlGroupRelaUrl(UrlGroupRelaUrl rela);

	/**
	 * 获取Url组的url的CheckBox列表
	 * @param groupId 组id
	 * @return CheckBox列表
	 */
	List<UrlGroupUrlCB> getCheckedUrlGroupUrl(int groupId);

	/**
	 * 通过urlId获取url详情
	 * @param urlId urlId
	 * @return 详情
	 */
	TsmUrl getTsmUrl(int urlId);
}
