package com.brilliance.isc.esb.api.ebmp;

import com.brilliance.isc.esb.model.Req;
import com.brilliance.isc.esb.model.Res;
import com.brilliance.isc.esb.model.ebmp.*;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;

/**
 * EBMP 中间业务平台请求方
 *
 * @restApi
 */
//@RequestMapping("/EBMP")
public interface EbmpClient {

    /**
     * SF03 g系统往报请求对象
     *
     * @param reqSF03
     * @return
     */
    @PostMapping("/SF03")
    Res<ResSF03> callSF03(Req<ReqSF03> reqSF03);

    /**
     * 中台系统提供国结发送汇总征税保函复核交易信息
     *
     * @param req6603
     * @return
     */
    @PostMapping("/6603")
    Res<Res6603> call6603(Req<Req6603> req6603);

    /**
     * 中台系统提供国结发送汇总征税保函状态同步
     *
     * @param req6605
     * @return
     */
    @PostMapping("/6605")
    Res<Res6605> call6605(Req<Req6605> req6605);

    /**
     * 中台系统提供关税保函发送交易
     *
     * @param reqZM01
     * @return
     */
    @PostMapping("/ZM01")
    Res<ResZM01> callZM01(Req<ReqZM01> reqZM01);


    /**
     * GF03 F系统往报请求对象
     *
     * @param reqGF03
     * @return
     */
    @PostMapping("/GF03")
    Res<ResGF03> callGF03(Req<ReqGF03> reqGF03);

    /**
     * 企业名录查询
     *
     * @param reqTM01
     * @return
     */
    @PostMapping("/TM01")
    Res<ResTM01> callTM01(Req<ReqTM01> reqTM01);

    /**
     * 中台系统提供退回(撤销)报文接口
     *
     * @param req6702
     * @return
     */
    @PostMapping("/6702")
    Res<Res6702> call6702(Req<Req6702> req6702);

    /**
     * 中台系统提供报文返回结果接口
     *
     * @param req6703
     * @return
     */
    @PostMapping("/6703")
    Res<Res6703> call6703(Req<Req6703> req6703);

    /**
     * 中台系统提供收汇接口
     *
     * @param req6704
     * @return
     */
    @PostMapping("/6704")
    Res<Res6704> call6704(Req<Req6704> req6704);

    /**
     * 国结通知中台收汇结果接口
     *
     * @param req6706
     * @return
     */
    @PostMapping("/6706")
    Res<Res6706> call6706(Req<Req6706> req6706);

    /**
     * 6802 CIPS报文退回(撤销)接口
     *
     * @param req6802
     * @return
     */
    @PostMapping("/6802")
    Res<Res6802> call6802(Req<Req6802> req6802);

    /**
     * 6803 CIPS付汇报文返回结果接口
     *
     * @param req6803
     * @return
     */
    @PostMapping("/6803")
    Res<Res6803> call6803(Req<Req6803> req6803);

    /**
     * 6804 人民币报文收汇通知接口
     *
     * @param req6804
     * @return
     */
    @PostMapping("/6804")
    Res<Res6804> call6804(Req<Req6804> req6804);

    /**
     * 6806 国结通知中台人民币收汇结果接口
     *
     * @param req6806
     * @return
     */
    @PostMapping("/6806")
    Res<Res6806> call6806(Req<Req6806> req6806);

    /**
     * 6902 退回(撤销)支付机构汇款交易接口
     *
     * @param req6902
     * @return
     */
    @PostMapping("/6902")
    Res<Res6902> call6902(Req<Req6902> req6902);

    /**
     * 6903 报文返回结果接口
     *
     * @param req6903
     * @return
     */
    @PostMapping("/6903")
    Res<Res6903> call6903(Req<Req6903> req6903);

}
