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


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.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;

/**
 * EBMP 中间业务平台服务方
 *
 * @restApi
 */

//@RequestMapping("/SSTF")
public interface EbmpServer {

    /**
     * GS01 g系统来报
     *
     * @param reqGs01
     * @return
     */
    @PostMapping("/GS01")
    Res<ResGS01> doGS01(ReqGS01 reqGs01);

    /**
     * GS02 接收中台返回gisp900报文
     *
     * @param reqGs02
     * @return
     */
    @PostMapping("/GS02")
    Res<ResGS02> doGS02(ReqGS02 reqGs02);

    /**
     * GS03 g系统密押状态通知
     *
     * @param reqGs03
     * @return
     */
    @PostMapping("/EM00")
    Res<ResGS03> doGS03(ReqGS03 reqGs03);

    /**
     * ZM03 中台系统提供关税保函海关状态推送交易
     *
     * @param reqZM03
     * @return
     */
    @PostMapping("/ZM03")
    Res<ResZM03> doZM03(ReqZM03 reqZM03);

    /**
     * 6604 中台系统提供国结汇总征税保函信息维护结果通知
     *
     * @param req6604
     * @return
     */
    @PostMapping("/6604")
    Res<Res6604> do6604(Req6604 req6604);

    /**
     * GF31 F系统来报
     *
     * @param reqGf31
     * @return
     */
    @PostMapping("/GF31")
    Res<ResGF31> doGF31(ReqGF31 reqGf31);

    /**
     * GF32 接收往报回执
     *
     * @param reqGf32
     * @return
     */
    @PostMapping("/GF32")
    Res<ResGF32> doGF32(ReqGF32 reqGf32);

    /**
     * GF33-GFIX系统接入机构信息变更发送国结
     *
     * @param reqGf33
     * @return
     */
    @PostMapping("/GF33")
    Res<ResGF33> doGF33(ReqGF33 reqGf33);
    /** 6701 swift汇款中台请求国结付汇申请
     *
     * @param req6701
     * @return
     */
    @PostMapping("/6701")
    Res<Res6701> do6701(Req6701 req6701);


    /**
     * 6705 swift汇款中台请求国结收汇确认
     *
     * @param req6705
     * @return
     */
    @PostMapping("/6705")
    Res<Res6705> do6705(Req6705 req6705);

    /**
     * 6801 cips汇款中台请求国结付汇申请
     *
     * @param req6801
     * @return
     */
    @PostMapping("/6801")
    Res<Res6801> do6801(Req6801 req6801);

    /**
     * 6805 cips汇款中台请求国结收汇确认
     *
     * @param req6805
     * @return
     */
    @PostMapping("/6805")
    Res<Res6805> do6805(Req6805 req6805);

    /**
     * 6901 境内外币汇款中台请求国结付汇申请
     *
     * @param req6901
     * @return
     */
    @PostMapping("/6901")
    Res<Res6901> do6901(Req6901 req6901);

}
