package tech.easyflow.system.service;

import com.mybatisflex.core.service.IService;
import tech.easyflow.system.entity.SysApiKey;
import tech.easyflow.system.entity.SysApiKeyResourceMapping;

import java.math.BigInteger;

/**
 * apikey-请求接口表 服务层。
 *
 * @author 12076
 * @since 2025-12-01
 */
public interface SysApiKeyResourceMappingService extends IService<SysApiKeyResourceMapping> {

    void authInterface(SysApiKey entity);

    /**
     * 移除指定 apiKey 下某个资源目标的 scope 授权。
     *
     * @param apiKeyId apiKey ID
     * @param resourceType 资源类型
     * @param resourceTargetId 资源目标 ID
     */
    void removeScopedMappings(BigInteger apiKeyId, String resourceType, BigInteger resourceTargetId);

    /**
     * 按资源类型移除指定 apiKey 下的全部资源级授权。
     *
     * @param apiKeyId apiKey ID
     * @param resourceType 资源类型
     */
    void removeScopedMappings(BigInteger apiKeyId, String resourceType);
}
