package com.eactive.eai.common.inflow.dual;

import com.eactive.eai.common.inflow.Bucket;

/**
 * Bucket 인터페이스 확장.
 * 기존 isAdapterPass/isInterfacePass(boolean)에 더해
 * 어느 버킷(PER_SECOND/THRESHOLD)에서 차단됐는지 반환하는 메서드 추가.
 *
 * <p>클라이언트 유량제어는 {@link ClientDualBucket}으로 분리됨.
 */
public interface DualBucket extends Bucket {

    /**
     * 어댑터 유량제어 체크 — 차단 원인 포함.
     * @return null이면 통과, "PER_SECOND" 또는 "THRESHOLD"이면 해당 버킷에서 차단
     */
    String isAdapterPassDetail(String adapter);

    /**
     * 인터페이스 유량제어 체크 — 차단 원인 포함.
     * @return null이면 통과, "PER_SECOND" 또는 "THRESHOLD"이면 해당 버킷에서 차단
     */
    String isInterfacePassDetail(String inter);
}
