package tech.easyflow.system.service;

import tech.easyflow.common.entity.LoginAccount;
import tech.easyflow.system.enums.CategoryResourceType;
import tech.easyflow.system.enums.ResourceAction;
import tech.easyflow.system.permission.resource.VisibilityResource;

public interface ResourceAccessService {

    boolean canAccess(CategoryResourceType resourceType, VisibilityResource resource, ResourceAction action);

    boolean canAccess(LoginAccount loginAccount, CategoryResourceType resourceType, VisibilityResource resource, ResourceAction action);

    void assertAccess(CategoryResourceType resourceType, VisibilityResource resource, ResourceAction action, String message);
}
