package com.xunhong.erp.turbo.rbac.domain.gateway;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.xunhong.erp.turbo.api.rbac.dto.cmd.PermissionCreateCmd;
import com.xunhong.erp.turbo.api.rbac.dto.cmd.PermissionDestroyCmd;
import com.xunhong.erp.turbo.api.rbac.dto.cmd.PermissionUpdateCmd;
import com.xunhong.erp.turbo.api.rbac.dto.qry.PermissionListQry;
import com.xunhong.erp.turbo.api.rbac.dto.qry.PermissionPageQry;
import com.xunhong.erp.turbo.api.rbac.dto.qry.PermissionShowQry;
import com.xunhong.erp.turbo.api.rbac.dto.qry.UserPermissionQry;
import com.xunhong.erp.turbo.rbac.domain.entity.Permission;

import java.util.List;

public interface PermissionGateway {
	List<Permission> list(PermissionListQry permissionListQry);

	IPage<Permission> page(PermissionPageQry permissionPageQry);

	Permission show(PermissionShowQry permissionShowQry);

	Permission create(PermissionCreateCmd permissionCreateCmd);

	Permission update(PermissionUpdateCmd permissionUpdateCmd);

	void destroy(PermissionDestroyCmd permissionDestroyCmd);

	List<Permission> userPermission(UserPermissionQry userPermissionQry);
}
