package go.kr.project.api.internal.client;

import go.kr.project.api.model.Envelope;
import go.kr.project.api.model.request.BasicRequest;
import go.kr.project.api.model.request.LedgerRequest;
import go.kr.project.api.model.response.BasicResponse;
import go.kr.project.api.model.response.LedgerResponse;
import org.springframework.http.ResponseEntity;

/**
 * 정부 시스템 연계 API 추상화 인터페이스.
 *
 * <p>외부 정부 시스템과의 통신 계약을 명확히 하여 테스트 용이성과
 * 추후 교체 가능성을 높입니다.</p>
 */
public interface GovernmentApi {

    ResponseEntity<Envelope<BasicResponse>> callBasic(Envelope<BasicRequest> envelope);

    ResponseEntity<Envelope<LedgerResponse>> callLedger(Envelope<LedgerRequest> envelope);
}
