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

import com.brilliance.isc.esb.model.Req;
import com.brilliance.isc.esb.model.Res;
import com.brilliance.isc.esb.model.bd.*;
import com.brilliance.isc.esb.model.cfca.ReqFT70;
import com.brilliance.isc.esb.model.cfca.ReqFT72;
import com.brilliance.isc.esb.model.cfca.ResFT70;
import com.brilliance.isc.esb.model.cfca.ResFT72;
import com.brilliance.isc.esb.model.tysf.ReqGJ70;
import com.brilliance.isc.esb.model.tysf.ResGJ70;
import com.brilliance.isc.esb.model.whj.ReqWHJ1;
import com.brilliance.isc.esb.model.whj.ResWHJ1;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;

/**
 * CFCA 接口平台请求方
 *
 * @restApi
 */
//@RequestMapping("/EBIS")
public interface CfcaClient {
    /**
     * DF72 安心签下载(原FT72)
     *
     * @param reqFT72
     * @return
     */
    @PostMapping("/DF72")
    Res<ResFT72> callFT72(@RequestBody Req<ReqFT72> reqFT72);

    /**
     * PF70 上传合同签署(原FT70)
     *
     * @param reqFT70
     * @return
     */
    @PostMapping("/PF70")
    Res<ResFT70> callFT70(@RequestBody Req<ReqFT70> reqFT70);

    /**
     * OF70 安心签ofd盖章(原GJ70)
     *
     * @param reqGJ70
     * @return
     */
    @PostMapping("/OF70")
    Res<ResGJ70> callGJ70(@RequestBody Req<ReqGJ70> reqGJ70);

    /**
     * WHJ1 光大接入外汇局跨境金融平台
     *
     * @param reqWHJ1
     * @return
     */
    @PostMapping("/WHJ1")
    Res<ResWHJ1> callWHJ1(@RequestBody Req<ReqWHJ1> reqWHJ1);

    /**
     * BDTK 获取北京电力平台访问令牌
     *
     * @param reqBDTK
     * @return
     */
    @PostMapping("/BDTK")
    Res<ResBDTK> callBDTK(@RequestBody Req<ReqBDTK> reqBDTK);

    /**
     * BDTK 调用北京电力平台保函开立接口
     *
     * @param reqBDBH
     * @return
     */
    @PostMapping("/BDBH")
    Res<ResBDBH> callBDBH(@RequestBody Req<ReqBDBH> reqBDBH);

    /**
     * BDTK 调用北京电力平台保函注销接口
     *
     * @param reqBDBH
     * @return
     */
    @PostMapping("/BDZX")
    Res<ResBDZX> callBDZX(@RequestBody Req<ReqBDBH> reqBDBH);

    /**
     * BDTX 调用北京电力平台保函提前注销通知接口
     *
     * @param reqBDTX
     * @return
     */
    @PostMapping("/BDTX")
    Res<ResBDTX> callBDTX(@RequestBody Req<ReqBDBH> reqBDBH);

    /**
     * BDZC 调用北京电力平台追偿通知接口
     *
     * @param reqBDZC
     * @return
     */
    @PostMapping("/BDZC")
    Res<ResBDZC> callBDZC(@RequestBody Req<ReqBDBH> reqBDBH);

    /**
     * BDDY 调用北京电力平台动用通知接口
     *
     * @param reqBDDY
     * @return
     */
    @PostMapping("/BDDY")
    Res<ResBDDY> callBDDY(@RequestBody Req<ReqBDBH> reqBDBH);
}
