package com.ga.api.transfer;

import com.ga.core.vo.settle.PaymentVO;

import java.util.List;

/**
 * 은행별 이체파일 생성 인터페이스.
 * 새 은행 포맷 추가 시 이 인터페이스 구현체만 추가하면 됨.
 */
public interface BankTransferFileGenerator {

    /** 은행 코드 ("088", "020" 등) 또는 기본 "GENERIC_CSV" */
    String getBankCode();

    /** 파일 확장자 ".csv", ".dat" 등 */
    String getFileExtension();

    /**
     * 이체파일 바이트 생성.
     * accountNo 는 PaymentVO 에서 이미 복호화된 상태로 전달됨.
     */
    byte[] generate(List<PaymentVO> payments, String settleMonth);
}
