package com.brilliance.isc.common.doc;

import com.brilliance.isc.common.trndoc.vo.DoceotVo;

import java.util.List;

/**
 * 交易的面函报文处理实现接口
 * 泛型为交易的bo
 */
public interface ITransactionDocSet<B> {

    /**
     * 传入数据，返回面函数据
     * @param trnBo
     * @param doceotVo
     * @return
     */
    TextResultVo outputMessage(B trnBo, DoceotVo doceotVo);


    /**
     * 支持可以切换的面函报文格式
     * Per Medium
     * LET、SWT、FAX、ELC等
     * @return
     */
    List<String> getEnableCortypes(DoceotVo doceotVo);


    /**
     * SWT默认必填，只有个别的为允许为false。
     * @param docName
     * @return
     */
    boolean isSWTRequired(String docName);
}
