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

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

/**
 * jk 对内系统的普惠金融云平台服务端接口
 *
 * @restApi
 */

@RequestMapping("/jk")
public interface InnerPhServer {
    /**
     * bhwb1 用户保函异步交易中国结发起应答的交易
     *
     * @param innerReqYptBhwb1
     * @return
     */
    @PostMapping("/bhwb1")
    InnerRes<InnerResYptBhwb1> callBhwb1(InnerReq<InnerReqYptBhwb1> innerReqYptBhwb1);

    /**
     * bhwb1snd 用户保函异步交易中国结发起应答的交易且有附件要上传mft服务器的通知
     *
     * @param innerReqYptBhwb1Snd
     * @return
     */
    @PostMapping("/bhwb1snd")
    InnerRes<InnerResYptBhwb1Snd> callBhwb1Snd(InnerReq<InnerReqYptBhwb1Snd> innerReqYptBhwb1Snd);

    /**
     * bhwb2 保函拒绝接口
     *
     * @param innerReqYptBhwb2
     * @return
     */
    @PostMapping("/bhwb2")
    InnerRes<InnerResYptBhwb2> callBhwb2(InnerReq<InnerReqYptBhwb2> innerReqYptBhwb2);

    /**
     * bhwb3 用户保函异步交易中国结发起应答的交易,发送给分行
     *
     * @param innerReqYptBhwb3
     * @return
     */
    @PostMapping("/bhwb3")
    InnerRes<InnerResYptBhwb3> callBhwb3(InnerReq<InnerReqYptBhwb3> innerReqYptBhwb3);

    /**
     * Downloadfile 文件下载
     *
     * @param innerReqDownloadfile
     * @return
     */
    @PostMapping("/Downloadfile")
    InnerRes<InnerResDownloadfile> callDownloadfile(InnerReq<InnerReqDownloadfile> innerReqDownloadfile);

    /**
     * ypt_bhwb3_snd 用户保函异步交易中国结发起应答的交易且有附件要上传mft服务器的通知
     *
     * @param innerReqYptBhwb3Snd
     * @return
     */
    @PostMapping("/bhwb3Snd")
    InnerRes<InnerResBhwb3Snd> callBhwb3Snd(InnerReq<InnerReqYptBhwb3> innerReqYptBhwb3Snd);

    /**
     * ypt_bhwb_sz 用户保函异步交易中国结主动向外发起需要对方异步应答的交易
     *
     * @param InnerReqBhwbSz
     * @return
     */
    @PostMapping("/bhwbSz")
    InnerRes<InnerResBhwbSz> callBhwbSz(InnerReq<InnerReqBhwbSz> InnerReqBhwbSz);

    /**
     * ypt_pack2mft 组mft报文
     *
     * @param innerReqPack2mf
     * @return
     */
    @PostMapping("/pack2mft")
    InnerRes<InnerResPack2mft> callPack2mft(InnerReq<InnerReqPack2mft> innerReqPack2mf);

    /**
     * FFT往报
     *
     * @param innerReqFTW1
     * @return
     */
    @PostMapping("/ftw1")
    InnerRes<InnerResFTW1> callFtw1(InnerReq<InnerReqFTW1> innerReqFTW1);


    /**
     * @param innerReqLcw1InnerReq
     * @return
     */
    @PostMapping("/LCW1")
    InnerRes<InnerResLcw1> callLcw1(InnerReq<InnerReqLcw1> innerReqLcw1InnerReq);

    @PostMapping("/LCW2")
    InnerRes<InnerResLcw2> callLcw2(InnerReq<InnerReqLcw2> innerReq);

    @PostMapping("/GjYbwxz")
    InnerRes<InnerResGjYbwxz> callGjYbwxz(InnerReq<InnerReqGjYbwxz> innerReq);
}
