package com.ga.external.bank;

import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;

/**
 * KFTC(금융결제원) 오픈뱅킹 입금이체 설정.
 * <p>
 * application.yml 의 <code>app.adapter.kftc.*</code> 로 주입.
 * <b>운영 전제</b>: 이용기관 등록 + 2-legged Access Token(이용기관 토큰) 발급 + 약정 출금계좌 등록이 선행되어야 한다.
 * Access Token 의 주기적 재발급은 운영(스케줄러/Secret 관리) 책임이며, 본 어댑터는 주입된 토큰을 사용한다.
 * 필수 값이 비어 있으면 어댑터가 fail-fast 한다.
 */
@Data
@ConfigurationProperties(prefix = "app.adapter.kftc")
public class KftcProperties {

    /** 오픈뱅킹 API 베이스 URL (운영 https://openapi.openbanking.or.kr / 테스트베드 https://developers.openbanking.or.kr). */
    private String baseUrl = "https://openapi.openbanking.or.kr";

    /** 이용기관 Access Token (Bearer). 운영에서 주기적으로 재발급해 주입. */
    private String accessToken;

    /** 이용기관 약정 출금계좌 구분 (N: 계좌). */
    private String cntrAccountType = "N";

    /** 이용기관 약정 출금계좌 번호. */
    private String cntrAccountNum;

    /** 출금계좌 인자내역(통장 적요). */
    private String wdPrintContent = "수수료정산";

    /** 수취인 실명 확인 옵션 (off/on). */
    private String nameCheckOption = "off";

    /** 이체 용도 코드 (TR: 송금 등). */
    private String transferPurpose = "TR";
}
