package com.eactive.eai.custom.inflow;

import com.eactive.eai.common.inflow.InflowTargetVO;
import com.eactive.eai.common.inflow.dual.DualBucket;

/**
 * DualBucket에 클라이언트 유량제어 메서드를 추가한 인터페이스.
 * {@link ClientDualInflowControlManager}가 구현한다.
 */
public interface ClientDualBucket extends DualBucket {

    /**
     * 클라이언트 유량제어 체크 — 차단 원인 포함.
     * @return null이면 통과, "PER_SECOND" 또는 "THRESHOLD"이면 해당 버킷에서 차단
     */
    String isClientPassDetail(String clientId);

    /**
     * 클라이언트 유량제어 설정 조회 — 에러 메시지 생성용.
     * @return 등록된 설정이 없으면 null
     */
    InflowTargetVO getClientInflowThreshold(String clientId);
}
