package com.ga.external.bank;

import com.ga.common.adapter.bank.BankTransferAdapter;
import com.ga.common.adapter.bank.BankTransferRequest;
import com.ga.common.adapter.bank.BankTransferResponse;
import lombok.extern.slf4j.Slf4j;
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
import org.springframework.stereotype.Component;

/**
 * KFTC(금융결제원) 오픈뱅킹 펌뱅킹 어댑터 — <b>스켈레톤</b>.
 * <p>
 * 활성 조건: <code>app.adapter.bank=kftc</code>. 실제 SDK / 클라이언트 의존성은 아직 미추가.
 * 외부 스펙(인증/엔드포인트/응답 코드)이 확정되면 본 클래스의 메서드를 구현한다.
 * 그 동안은 활성화 시 명시적 예외를 던져 잘못된 운영 적용을 빠르게 감지한다.
 */
@Slf4j
@Component
@ConditionalOnProperty(prefix = "app.adapter", name = "bank", havingValue = "kftc")
public class KftcBankTransferAdapter implements BankTransferAdapter {

    @Override
    public BankTransferResponse requestTransfer(BankTransferRequest request) {
        throw new UnsupportedOperationException(
                "KFTC 펌뱅킹 SDK 통합 미구현 — application.yml 의 app.adapter.bank=mock 으로 되돌리거나 본 어댑터를 완성하세요.");
    }

    @Override
    public BankTransferResponse queryStatus(String txId) {
        throw new UnsupportedOperationException(
                "KFTC 펌뱅킹 SDK 통합 미구현 — txId=" + txId);
    }
}
